在Python中测试断言错误

0 投票
1 回答
1516 浏览
提问于 2025-04-16 02:22

我正在用Python做一个测试套件,代码是基于Selenium提供的。但是在检查实际页面时,我遇到了奇怪的断言错误,像这样:

sel.click("link=Overview")
sel.wait_for_page_to_load("30000")
self.assertEqual("Naaya testing - Subtitlu testare", sel.get_title())

sel.click("link=Portal properties")
sel.wait_for_page_to_load("30000")
self.assertEqual("Naaya testing - Subtitlu testare", sel.get_title())
sel.click("link=Metadata")
sel.wait_for_page_to_load("15000")

在这段代码中奇怪的是,我只在第一次出现的地方得到了断言错误。之后我把第一次出现的地方换成了:

title = sel.get_title()
self.failUnless(title == "Naaya testing - Subtitlu testare","nu sunt "
                "pe pagina principala")

这样我就解决了错误,但我还是不明白为什么第二个断言没有失败,而第一个却失败了?

1 个回答

2

在Python中,当你使用 == 这个符号时,顺序可能会影响结果。你可以试试 "Your strng" == title,看看结果是什么。此外,assertEqual 可能会检查数据类型,所以正确的代码应该是:

self.assertEqual("Naaya testing - Subtitlu testare", str(sel.get_title()))

或者:

self.assertEqual(u"Naaya testing - Subtitlu testare", sel.get_title())

如果selenium使用的是 unicode 类型的话。

撰写回答