【问题标题】:Python webdriver in IE returns None for all find_elementsIE 中的 Python webdriver 为所有 find_elements 返回 None
【发布时间】:2011-08-15 14:00:59
【问题描述】:

我正在 python 中使用最新版本的 Selenium 2 开发测试,安装时使用pip install -U selenium。我有一系列使用webdriver.Firefox() 正确运行的测试,但没有使用webdriver.Ie()。它会正确打开并导航到页面,但任何访问该页面中元素的尝试都会失败。在其他页面中似乎没有问题,但我无法确定导致我的问题的原因。

我可以通过构建 webdriver 的实例来轻松生成问题:

from selenium import webdriver
browser = webdriver.Ie()
browser.get("page url")
browser.find_elements_by_tag_name("html") #returns None!

我正在寻找任何线索,说明为什么会这样。

【问题讨论】:

  • 我什至无法使用 Firefox 驱动程序。

标签: python internet-explorer testing selenium


【解决方案1】:

如果你正是在使用这段代码,那肯定有一些问题。

首先,我认为最好将find的返回值分配给一个变量,然后检查它的值;我的意思是html_tags = browser.find_elements_by_tag_name("html")

在那之后,我认为你应该使用browser.find_element_by_tag_name("html");因为每一页只有一个名为“html”的标签。如果您想实现名称为“html”的所有标记元素,则您的代码是正确的。

最后我认为你想访问页面源;在这种情况下,您应该使用以下之一:

  1. html_text = browser.find_element_by_tag_name("html").text
  2. html_text = browser.find_elements_by_tag_name("html")[0].text

只是为了涵盖所有州,请您告诉我您要访问的 URL 是什么?因为我用你的代码尝试了多个网页(完全是你的,不是在我自己编辑之后),一切都很好。

【讨论】:

    猜你喜欢
    • 2017-10-07
    • 2017-03-20
    • 2023-01-07
    • 2022-11-03
    • 2019-04-18
    • 1970-01-01
    • 2022-12-12
    • 1970-01-01
    • 2013-04-07
    相关资源
    最近更新 更多