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(),我们用它来完成剩下的部分 测试,在这种情况下,我们只需关闭浏览器
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也会关闭