IE中的Python webdriver为所有find_elements返回None

时间:2011-08-15 14:00:59

标签: python internet-explorer testing selenium

我正在使用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!

我正在寻找任何可能出现这种情况的线索。

1 个答案:

答案 0 :(得分:0)

如果您正在使用此代码,则绝对存在一些问题。

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

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

最后我想你想访问页面源码;在这种情况下,您应该使用以下其中一个:

  1. html_text = browser.find_element_by_tag_name("html").text
  2. html_text = browser.find_elements_by_tag_name("html")[0].text
  3. 只是为了涵盖所有州,您能否告诉我您尝试访问的URL是什么;因为我用你的代码尝试了多个网页(完全是你自己的,而不是我自己的编辑后),一切都很好。