seleniumPO设计模式
时间: 2023-12-06 10:38:36 浏览: 97
Selenium PO(Page Object)设计模式是一种自动化测试的最佳实践,它将页面对象封装在一个类中,使测试代码更加模块化、可读性更高、易于维护。下面是一个简单的Selenium PO设计模式的例子:
```python
from selenium import webdriver
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.ID, 'login-button')
self.error_message = (By.ID, 'error-message')
def enter_username(self, username):
WebDriverWait(self.driver, 10).until(EC.visibility_of_element_located(self.username_input))
self.driver.find_element(*self.username_input).send_keys(username)
def enter_password(self, password):
WebDriverWait(self.driver, 10).until(EC.visibility_of_element_located(self.password_input))
self.driver.find_element(*self.password_input).send_keys(password)
def click_login_button(self):
WebDriverWait(self.driver, 10).until(EC.element_to_be_clickable(self.login_button))
self.driver.find_element(*self.login_button).click()
def get_error_message(self):
WebDriverWait(self.driver, 10).until(EC.visibility_of_element_located(self.error_message))
return self.driver.find_element(*self.error_message).text
```
在这个例子中,我们定义了一个名为LoginPage的类,它包含了登录页面的所有元素和操作。在类的构造函数中,我们使用了Selenium的By类来定义了页面元素的定位方式,例如ID、CSS选择器等。然后,我们定义了一些方法来操作这些元素,例如输入用户名、输入密码、点击登录按钮等。在每个方法中,我们使用了Selenium的WebDriverWait类来等待元素的出现或可点击,以确保测试的稳定性和可靠性。
使用Selenium PO设计模式,我们可以将测试代码和页面元素分离开来,使测试代码更加清晰、易于维护。同时,我们还可以将页面元素的定位方式封装在类中,以便于修改和维护。
阅读全文