繁体   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