2012-03-30 21 views
0

我正在用Selenium創建一個Python腳本。我想運行一個特定的測試,在頁面加載時檢查文本框的默認文本。下面是我的代碼.......AssertionError - Selenium/Python

try: 
        self.assertEqual("Search by template name or category..", sel.get_text("//table[@id='pluginToolbarButton_forms']/tbody/tr[2]/td[2]/em")) 
        logging.info('  PASS: text box text is correct') 
       except Exception: 
        logging.exception('  FAIL: text box text is incorrect') 

這裏是我的錯誤......

  self.assertEqual("Search by template name or category..", sel.get_text("//table[@id='pluginToolbarButton_forms']/tbody/tr[2]/td[2]/em")) 
    File "C:\Python27\lib\unittest\case.py", line 509, in assertEqual 
    assertion_func(first, second, msg=msg) 
    File "C:\Python27\lib\unittest\case.py", line 502, in _baseAssertEqual 
    raise self.failureException(msg) 
AssertionError: 'Search by template name or category..' != u'Submitter Requests' 

我使用了錯誤的功能?

回答

0

AssertionError指出您嘗試(這是self.assertEqual(...)在你的第一個代碼示例)斷言失敗:

AssertionError: 'Search by template name or category..' != u'Submitter Requests' 

這種說法解釋說,這個字符串'Search by template name or category'不同於'Submitter Requests',這是正確的?字符串都是,實際上不同。

我會檢查你的第二個參數self.assertEqual,並確保你選擇了正確的功能。

0

這看起來像你正在使用正確的功能,但也許你沒有以正確的方式運行你的測試。

0

問題似乎是你沒有選擇正確的元素進行比較。你基本上是告訴程序匹配「的模板名稱或類別搜索。」等於無論是在內容:

//table[@id='pluginToolbarButton_forms']/tbody/tr[2]/td[2]/em 

顯然,內容是「發佈者的要求」,即不是你會期望,所以測試失敗(如它應該)。您可能不會使用該XPath查詢選擇正確的元素。也許一個CSS查詢會是最好的。您可以閱讀有關Selenium documentation中的元素選擇器。

請繼續關注以下錯誤:由Selenium返回的文本是Unicode object,並且您將它與字符串進行比較。這可能無法按預期在特殊字符上工作。