Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Selenium-在未找到预期值时尝试使测试失败_Python_Selenium_Ui Automation - Fatal编程技术网

Python Selenium-在未找到预期值时尝试使测试失败

Python Selenium-在未找到预期值时尝试使测试失败,python,selenium,ui-automation,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_n

我有一个应用程序,用户可以创建列表…一旦他们创建了一个列表,它将显示在应用程序主页上的表格中。只有用户创建的列表应显示在表的“创建人”列中

我试图让测试失败,如果找不到预期的名称,则打印

 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)

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

  • 我们有一个setUp(),用于在开始之前准备好一切 开始我们的测试、配置文件、首选项等

  • 然后test_show_only_user_created_list()是我们测试的重点, 在这里,我们拥有我们正在测试的功能(您可能有 如果必须这样做,请将剩余代码放在本节中 检查列表之前的任何内容)

  • 然后我们有了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
应该使用quit()而不是close(),这样基础webdriver也会关闭