selenium 二次封装详细代码
时间: 2023-08-11 18:54:10 浏览: 95
selenium的二次封装
5星 · 资源好评率100%
以下是一个简单的 Selenium 二次封装代码示例,封装了常用的元素定位方法、操作方法和部分断言方法:
```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 BasePage(object):
def __init__(self, driver):
self.driver = driver
def find_element(self, by, value):
'''封装元素定位方法'''
element = WebDriverWait(self.driver, 10).until(EC.presence_of_element_located((by, value)))
return element
def click(self, by, value):
'''封装点击操作方法'''
element = self.find_element(by, value)
element.click()
def send_keys(self, by, value, text):
'''封装输入操作方法'''
element = self.find_element(by, value)
element.clear()
element.send_keys(text)
def assert_title(self, title):
'''封装页面标题断言方法'''
assert self.driver.title == title, 'Error: Title not match!'
def assert_text(self, by, value, text):
'''封装页面元素文本断言方法'''
element = self.find_element(by, value)
assert element.text == text, 'Error: Text not match!'
```
使用示例:
```python
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('https://www.example.com')
page = BasePage(driver)
page.assert_title('Example Domain')
page.click(By.LINK_TEXT, 'More information...')
page.assert_text(By.CSS_SELECTOR, 'h1', 'More Information')
page.send_keys(By.NAME, 'q', 'selenium')
```
在上面的示例中,我们通过继承 BasePage 类,封装了常用的元素定位方法、操作方法和部分断言方法。使用时,只需要实例化 BasePage 类,并调用相应的封装方法即可。
阅读全文