【发布时间】:2018-06-11 14:13:05
【问题描述】:
使用 Selenium,我尝试访问 iframe 内的元素。
这是 HTML 代码:
<iframe id="DWT54_content_ifr" src='javascript:""' frameborder="0"
allowtransparency="true" title="Texte richeFaites ALT-F10 pour accéder à la
barre d'outils. Faites ALT-0 pour accéder à l'aide" style="width: 100%;
height: 0px; display: block;">
<body id="tinymce" class="mceContentBody "
onload="window.parent.tinyMCE.get('DWT54_content').onLoad.dispatch();"
contenteditable="true" dir="LTR" style="font-family: "times new
roman", "new york", times, serif; font-size: 14pt; color:
rgb(0, 0, 0);"><div><br></div></body></iframe>
这是我进入 iframe 的 Python 代码:
time.sleep(3)
driver.switch_to_frame(driver.find_element_by_id("DWT54_content_ifr"))
I also tried these codes:
driver.switch_to_frame("DWT54_content_ifr")
and
driver.switch_to_frame(driver.find_element_by_xpath("//iframe[@id='DWT54_content_ifr']"))
但每次我得到同样的错误:“无法定位元素”。
更新:
我设法使用这行代码进入 iframe:
driver.switch_to_frame(3)
但这不是很方便,因为我必须手动计算页面中 iframe 的数量...
有什么帮助吗?
谢谢。
【问题讨论】:
-
试试这个选择器
iframe[id$='_content_ifr'],以防每次随机生成DWT54。也等待元素可见性。 -
能否分享完整的html代码?可能是在某个框架内
-
小更新:感谢“driver.switch_to_frame(3)”,我成功地进入了我的 iframe。但是我不得不手动计算 iframe 的数量......这不是很方便。图尔西亚,我用了你的方法,结果还是一样。
-
@AnkurSingh:我检查过了,它不在其他框架内
标签: python html selenium iframe selenium-webdriver