2012-11-30 53 views
2

我正在爲Django做一個測試開發教程。 http://www.tdd-django-tutorial.com/tutorial/1/Selenium:find_element_by_link_text - TypeError:'WebElement'類型的對象沒有len()

當我運行測試時,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驅動程序有關,但我無法清除它。

回答

1

這條線是你的問題。

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

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

polls_links = self.browser.find_element_by_link_text('Polls').text 
+0

謝謝kreativitea! – nitochi

9

這是

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

elements(與s),而不是element

+1

這是正確的答案,find_element_by_link_text期望一組,而find_elements_by_link_text期望一組一個或多個 –

相關問題