帮我封装一个PO框架模板
时间: 2023-08-13 14:58:02 浏览: 105
当然可以!下面是一个基本的Page Object(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 BasePage:
def __init__(self, driver):
self.driver = driver
self.wait = WebDriverWait(self.driver, 10)
def find_element(self, by, value):
return self.wait.until(EC.presence_of_element_located((by, value)))
# 可以根据需要添加更多的公共方法
# 创建一个页面类,继承基类,用于封装特定页面的方法和属性
class HomePage(BasePage):
# 定义页面元素的定位方式和值
SEARCH_INPUT = (By.ID, "search-input")
SEARCH_BUTTON = (By.ID, "search-button")
def search(self, keyword):
# 操作页面元素
search_input = self.find_element(*self.SEARCH_INPUT)
search_input.clear()
search_input.send_keys(keyword)
search_button = self.find_element(*self.SEARCH_BUTTON)
search_button.click()
# 创建一个测试类,用于编写测试逻辑
class TestHomePage:
def setup_method(self):
self.driver = webdriver.Chrome()
self.driver.get("https://www.example.com")
self.home_page = HomePage(self.driver)
def teardown_method(self):
self.driver.quit()
def test_search(self):
self.home_page.search("example")
# 运行测试类
if __name__ == "__main__":
test = TestHomePage()
test.setup_method()
test.test_search()
test.teardown_method()
```
上述模板是一个基本的PO框架示例,你可以根据自己的需求进行修改和扩展。在这个模板中,我们使用了Selenium库来操作网页,通过Page Object模式来封装页面元素和操作方法,以及使用测试类来编写测试逻辑。
希望这个模板对你有所帮助!如果你还有其他问题,请随时提问。
阅读全文