使用 Selenium 与 unittest 框架的自动化测试案例,可以用来模拟浏览器自动打开网站并提交表单:
在下述代码中,我们定义了一个继承自 unittest.TestCase 的测试类 TestLoginForm,其中 setUp() 方法在每个测试方法执行前会调用,用来启动浏览器并打开测试用网站。tearDown() 方法在每个测试方法执行后会调用,用来关闭浏览器。
test_login_successful() 和 test_login_failed() 分别表示登录成功和登录失败的测试方法。在测试方法中,我们首先使用 Selenium 的 find_element_by_id() 方法获取用户名、密码和提交按钮的输入框。然后输入对应的数据并点击提交按钮。最后,我们使用 Python 的 assertEqual() 断言方法来验证测试结果是否符合预期。如果断言失败则会输出对应的错误信息。
使用 unittest 框架可以方便地对多个测试用例进行管理和执行,并输出详细的测试报告。
import unittest from selenium import webdriver class TestLoginForm(unittest.TestCase): def setUp(self): self.driver = webdriver.Chrome() self.driver.get("http://example.com/login") def tearDown(self): self.driver.quit() def test_login_successful(self): username_input = self.driver.find_element_by_id("username") password_input = self.driver.find_element_by_id("password") submit_button = self.driver.find_element_by_id("submit") # 输入用户名和密码 username_input.send_keys("testuser") password_input.send_keys("testpassword") # 提交表单 submit_button.click() # 验证登录是否成功,例如检查是否跳转至了登录后的页面 self.assertEqual(self.driver.current_url, "http://example.com/dashboard", "登录成功后跳转失败") def test_login_failed(self): username_input = self.driver.find_element_by_id("username") password_input = self.driver.find_element_by_id("password") submit_button = self.driver.find_element_by_id("submit") # 输入错误的用户名和密码 username_input.send_keys("invaliduser") password_input.send_keys("invalidpassword") # 提交表单 submit_button.click() # 验证是否显示错误信息 error_message = self.driver.find_element_by_id("error-message").text self.assertEqual(error_message, "用户名或密码错误", "错误信息不正确")
标签:python,self,driver,id,案例,自动化,input,element,find From: https://www.cnblogs.com/wzcc/p/17382107.html