我正在为Django做一个测试开发教程。 http://www.tdd-django-tutorial.com/tutorial/1/
当我运行测试时,我遇到了find_element_by_link_text的问题。错误显示:
find_element_by_link_text - TypeError: Object of type 'WebElement' has no len()
失败的测试部分是这一部分:
polls_links = self.browser.find_element_by_link_text('Polls')
self.assertEquals(len(polls_links), 2)
如果删除这些行,测试工作正常,则会在管理员上添加民意调查模型。在管理站点中,在Selenium测试期间,有2个链接带有“民意调查”文本。
问题似乎不是它没有识别它们,问题似乎是find_element_by_link_text返回...我不知道
有人能指出我正确的方向吗?我做了一些研究,显然它与Firefox的Selenium驱动程序有关,但我无法清除它。
答案 0 :(得分:9)
这是
polls_links = self.browser.find_elements_by_link_text('Polls')
即。 elements
(s
)而非element
答案 1 :(得分:1)
这一行是你的问题。
polls_links = self.browser.find_element_by_link_text('Polls')
您需要添加.text
方法以返回元素的文本而不是元素本身。
polls_links = self.browser.find_element_by_link_text('Polls').text