pageobject 详细介绍下 使用python代码示例
时间: 2024-03-29 17:41:22 浏览: 67
Page Object 是一种设计模式,用于将页面对象与测试代码分离,从而提高代码的可重用性、可维护性和可读性。下面是使用 Python 实现 Page Object 的示例代码:
1. 首先,我们需要创建一个 BasePage 类,它包含一些公共的方法,例如 find_element 和 click 等。
```python
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.remote.webdriver import WebDriver
class BasePage:
def __init__(self, driver: WebDriver):
self.driver = driver
def find_element(self, locator, timeout=10):
element = WebDriverWait(self.driver, timeout).until(EC.presence_of_element_located(locator))
return element
def click(self, locator, timeout=10):
element = self.find_element(locator, timeout)
element.click()
```
2. 接下来,我们创建一个 Page 类,用于表示一个页面。该类继承自 BasePage 类,并包含该页面的所有元素和方法。在这个示例中,我们以 Google 首页为例。
```python
from selenium.webdriver.common.by import By
class GooglePage(BasePage):
URL = "https://www.google.com/"
SEARCH_INPUT = (By.NAME, "q")
SEARCH_BUTTON = (By.CSS_SELECTOR, "input[type='submit']")
def __init__(self, driver: WebDriver):
super().__init__(driver)
self.driver.get(self.URL)
def search(self, keyword):
search_input = self.find_element(self.SEARCH_INPUT)
search_input.send_keys(keyword)
self.click(self.SEARCH_BUTTON)
```
3. 最后,我们可以在测试代码中实例化该页面,并调用其中的方法。
```python
from selenium import webdriver
driver = webdriver.Chrome()
google_page = GooglePage(driver)
google_page.search("Page Object Pattern")
```
以上就是使用 Python 实现 Page Object 的示例代码。在实际使用中,可以根据具体的项目需求,进一步完善和优化代码。
阅读全文