2

我正在为 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)

如果我删除这些行,测试会正常工作,那么会在管理员中添加 Polls 模型。在管理站点中,在 Selenium 测试期间,有 2 个链接带有文本“投票”。

问题似乎不是它没有识别它们,问题似乎是 find_element_by_link_text 返回的...我不知道

谁能指出我正确的方向?我做了一些研究,显然它与 Firefox 的 Selenium 驱动程序有关,但我无法清除它。

4

2 回答 2

9

It's

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

i.e. elements (with an s) and not element

于 2013-01-30T22:37:23.663 回答
1

这条线是你的问题。

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

您需要添加.text方法来返回元素的文本,而不是元素本身。

polls_links = self.browser.find_element_by_link_text('Polls').text
于 2012-11-30T18:36:51.097 回答