我正在使用Selenium来填充Web表单,但是由于某种原因,这个特定的文本框给我带来了麻烦。的html是:
<input type="text" class="black_ar" value="" size="25" id="type" name="type"
onmouseover="showTip(this.id)" onmouseout="hideTip(this.id)"
onblur="trimByAutoTag(this);onSubTypeChangeUnit('className',this,'unitSpan')"
autocomplete="off" title="">
我用过:
driver.find_element_by_name('type').click()
和
driver.find_element_by_xpath('xpath').click()
但是他们都说找不到该元素。我不确定它是否在iframe中(如果有人知道一种检查方法)是否在使用chropath(这是chrome扩展程序)来查找元素的xpath。
编辑:chropath在相对xpath下说:“它可能是svg / pseudo / comment / iframe的子代。XPath不支持它们。”如果有帮助
答案 0 :(得分:1)
根据您共享的 HTML 在文本框中单击,可以使用以下解决方案之一:
xpath
:
driver.find_element_by_xpath("//input[@class='black_ar' and @id='type']").click()
css_selector
:
driver.find_element_by_css_selector("input.black_ar#type").click()
答案 1 :(得分:0)
在浏览器中打开网页,例如chrome。在文本框中按鼠标右键,然后选择检查菜单。在oped开发工具中,查看您的文本框是否具有父iframe元素。一种方法:
iframe input.black_ar
如果您首先要切换到此框架function for switching frames in python, selenium
要找到您的输入,请使用driver.find_element_by_css_selector(‘input.black_ar’)
答案 2 :(得分:0)
您尝试过driver.find_element_by_xpath("//input[@id='type']").click();
吗?
您都可以在浏览器中按F12
进行检查,或使用开发者工具进行检查;然后按Ctrl+f
,然后输入//iframe
,然后尝试查看页面中是否存在。
答案 3 :(得分:0)
现在ChroPath支持iframe。因此,如果您检查任何元素并且该元素在iframe中,则ChroPath会告诉该元素在iframe中,并且会生成相对的xpath。