Python Selenium Webdriver:查找#document 元素

2023-12-21

我一直在使用 Python 的 Selenium Webdriver 通过此 HTML 代码获取元素。 但是,我无法访问此 #document 标记内的任何元素。

我都用过driver.find_element_by_xpath("html/body/div[@id='frame']/iframe/*"),我尝试过elem = driver.find_element_by_tag("iframe"),随后是elem.find_element_by_xpath寻找内部元素但失败了。

我也尝试过做driver.switch_to_frame(driver.find_element_by_tag("iframe")),用xpath表达式来查找内部元素,但也不起作用。

Frame:

<div>
    <iframe>
        #document
            <html>
               <body>
                   <div>
                    ....   
                   </div>
               </body>
            </html>
    </iframe>
</div>

切换到iframe然后使用普通的查询方法才是正确的使用方法。我在一个大型测试套件中成功地使用了它。

不过,当您完成 iframe 内的工作后,请记住切换回默认内容。

现在,来解决您的问题。您如何提供 iframe 的内容?您是否真的只是编写了 html 并将其保存到文件中,或者您正在查看示例站点。您可能会发现 iframe 实际上并不包含您期望的内容。尝试这个。

from selenium.webdriver import Firefox

b = Firefox()
b.get('localhost:8000') # or wherever you are serving this html from
iframe = b.find_element_by_css_selector('iframe')
b.switch_to_frame(iframe)
print b.page_source

这将是 iframe 内的 html。内容是你所期望的吗?或者主要是空的。如果它是空的,那么我怀疑这是因为您需要单独提供 iframe 的内容。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python Selenium Webdriver:查找#document 元素 的相关文章

随机推荐