我正在用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 :(得分:0)
您的AssertionError
表示您尝试过的断言(即第一个代码示例中的self.assertEqual(...)
)失败:
AssertionError: 'Search by template name or category..' != u'Submitter Requests'
这个断言解释了字符串'Search by template name or category'
与'Submitter Requests'
不同,这是正确的......字符串 ,实际上是不同的。
我会将您的第二个参数检查到self.assertEqual
,并确保选择正确的功能。
答案 1 :(得分:0)
这看起来像是在使用正确的功能,但也许您没有以正确的方式运行测试。
答案 2 :(得分:0)
问题似乎是你没有选择要比较的正确元素。您基本上告诉程序匹配“按模板名称或类别搜索..”等于以下内容:
//table[@id='pluginToolbarButton_forms']/tbody/tr[2]/td[2]/em
显然,内容是“提交者请求”,即不是您所期望的,因此测试失败(应该如此)。您可能没有使用该XPath查询选择正确的元素。也许CSS查询最好。您可以在Selenium documentation中阅读有关元素选择器的内容。
同时关注陷阱:Selenium返回的文本是Unicode object,您将它与字符串进行比较。对于特殊字符,这可能无法正常工作。