簡體   English   中英

AssertionError-Selenium / Python

[英]AssertionError - Selenium/Python

我正在用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'

我使用了錯誤的功能嗎?

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

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

該斷言說明字符串'Search by template name or category''Submitter Requests'不同,這是正確的……實際上,這些字符串不同的。

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

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

問題似乎是您沒有選擇正確的元素進行比較。 您基本上是在告訴程序匹配“按模板名稱或類別搜索。”等於以下內容:

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

顯然,內容是“ Submitter請求”,即不是您期望的內容,因此測試失敗(應該如此)。 您可能沒有通過該XPath查詢選擇正確的元素。 也許CSS查詢是最好的。 您可以在Selenium文檔中閱讀有關元素選擇器的信息

還要注意一個陷阱:Selenium返回的文本是Unicode對象 ,您正在將其與字符串進行比較。 對於特殊字符,這可能無法正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM