Python Selenium-在未找到期望值的情况下尝试失败测试

时间:2019-07-01 15:23:59

标签: python selenium ui-automation

我有一个应用程序,用户可以在其中创建列表...一旦创建了列表,它就会显示在应用程序首页上的表格中。仅用户创建的列表应显示在表的“创建者”列中。

我正在尝试使测试失败并在未找到所需名称的情况下打印。

 users_names = context.browser.find_elements_by_xpath("//tr//td[7]")

expected_name = "%s" % name

for name in expected_name:
    if name.text != expected_name:
        print("Failed\n", users_names)

1 个答案:

答案 0 :(得分:0)

如果我正确理解了您的问题,则希望验证所显示的唯一列表是用户实际上创建的。有几种方法可以做到,下面的示例可以改进。

  • 我们有setUp(),用于在我们准备好一切之前 开始测试,个人资料,偏好设置等

  • 然后test_show_only_user_created_lists()是我们测试的重点, 我们拥有我们正在测试的功能的地方(您可能拥有 如果需要的话,将剩余的代码放在本节中 检查列表之前的所有内容)

  • 然后,我们使用了tearDown()来完成剩余的内容 测试,在这种情况下,我们只是关闭浏览器。

我们可以使用方便的单元测试库,并且仅在循环完成后才断言。但是我们必须确保填充“ expected_name”变量。

import unittest
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

class listTest(unittest.TestCase):

    def setUp(self):
        self.driver = webdriver.Firefox()

    def test_show_only_user_created_lists(self):
        driver = self.driver
        driver.get("http://yoursite.com")
        users_names = driver.find_elements_by_xpath("//tr//td[7]")

        testOutcome = 1

        for name in users_names:
            if name.text != expected_name:
              testOutcome = 0

        ### Assert ####
        self.assertTrue(testOutcome)

    def tearDown(self):
        self.driver.quit()

if __name__ == "__main__":
    unittest.main()

然后我们可以使用以下命令来运行测试,以指示通过或失败:

python selenium-python-test.py