写一个登录WEB自动化测试的PO模式的脚本
时间: 2024-06-09 14:12:23 浏览: 14
好的,以下是一个使用PO模式编写的登录WEB自动化测试脚本的示例:
```python
# 导入必要的库和类
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
# 定义页面类
class LoginPage:
def __init__(self, driver):
self.driver = driver
self.username_input = (By.ID, 'username')
self.password_input = (By.ID, 'password')
self.login_button = (By.XPATH, '//button[@type="submit"]')
def enter_username(self, username):
self.driver.find_element(*self.username_input).send_keys(username)
def enter_password(self, password):
self.driver.find_element(*self.password_input).send_keys(password)
def click_login_button(self):
self.driver.find_element(*self.login_button).click()
# 定义测试用例
def test_login(driver):
login_page = LoginPage(driver)
login_page.enter_username('testuser')
login_page.enter_password('testpass')
login_page.click_login_button()
# 等待页面跳转并验证登录是否成功
WebDriverWait(driver, 10).until(EC.url_changes)
assert driver.current_url == 'http://www.example.com/home'
```
在这个示例中,我们创建了一个名为 `LoginPage` 的页面类,包含了登录页面的元素和操作。然后,我们编写了一个名为 `test_login` 的测试用例,使用 `LoginPage` 类中的方法来执行登录操作,并等待登录成功后的页面跳转,最后使用 `assert` 语句验证登录是否成功。
在实际应用中,我们可以将页面类和测试用例分别保存在不同的文件中,使代码更加清晰易读。