我有一个应用程序,用户可以在其中创建列表...一旦创建了列表,它就会显示在应用程序首页上的表格中。仅用户创建的列表应显示在表的“创建者”列中。
我正在尝试使测试失败并在未找到所需名称的情况下打印。
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)
答案 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