自动化测试怎么用PO封装测试将网页的信息提取并输出
时间: 2023-08-16 09:05:05 浏览: 68
使用Page Object模式可以将网页的信息封装起来,然后使用自动化测试工具进行测试。下面是一个简单的示例代码,演示如何使用Page Object模式以及Selenium WebDriver来提取网页信息并输出:
```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')
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()
class HomePage:
def __init__(self, driver):
self.driver = driver
self.welcome_message = (By.ID, 'welcome_message')
def get_welcome_message(self):
return self.driver.find_element(*self.welcome_message).text
# 测试代码
driver = webdriver.Chrome()
driver.get('http://www.example.com/login')
wait = WebDriverWait(driver, 10)
# 登录
login_page = LoginPage(driver)
login_page.enter_username('username')
login_page.enter_password('password')
login_page.click_login_button()
# 等待页面加载完成
wait.until(EC.visibility_of_element_located((By.ID, 'welcome_message')))
# 获取欢迎信息
home_page = HomePage(driver)
welcome_message = home_page.get_welcome_message()
print(welcome_message)
driver.quit()
```
在这个示例中,我们首先定义了两个Page Object类:LoginPage和HomePage。LoginPage封装了登录页面的元素,包括用户名输入框、密码输入框和登录按钮。HomePage封装了主页的元素,包括欢迎信息。
在测试代码中,我们首先创建了WebDriver对象,然后打开登录页面。接着,我们创建了LoginPage对象,并使用它的方法输入用户名、密码和点击登录按钮。然后,我们等待主页加载完成,创建了HomePage对象,并使用它的方法获取欢迎信息。最后,我们将欢迎信息输出到控制台,并关闭WebDriver对象。
使用Page Object模式可以将网页的元素和操作封装起来,使测试代码更加清晰易懂。同时,Page Object模式还可以提高测试的可维护性和可扩展性。