Selenium:find_element_by_link_text - TypeError:'WebElement'类型的对象没有len()

时间:2012-11-30 18:24:27

标签: django selenium

我正在为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驱动程序有关,但我无法清除它。

2 个答案:

答案 0 :(得分:9)

这是

polls_links = self.browser.find_elements_by_link_text('Polls')

即。 elementss)而非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