Python WebDriver在IE中对所有find_elements返回None

2 投票
1 回答
874 浏览
提问于 2025-04-16 23:37

我正在用最新版本的Selenium 2和Python开发测试,安装方式是用 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!

我希望能找到一些线索,看看这可能是什么原因。

1 个回答

0

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

首先,我觉得把查找结果赋值给一个变量,然后再检查这个变量的值会更好。比如说,你可以写成 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是什么吗?因为我用你的代码(完全一样,没有我自己的修改)尝试了多个网页,一切都正常。

撰写回答