利用python对selenium进行二次封装
时间: 2023-10-06 12:09:55 浏览: 101
Selenium是一款强大的自动化测试工具,但是使用起来相对较为繁琐,需要编写大量的代码来完成测试任务。为了简化Selenium的使用,我们可以对其进行二次封装,将常用的操作封装成函数或类,方便日后的使用。
以下是一个利用Python对Selenium进行二次封装的示例:
```python
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
class Browser:
def __init__(self, driver_path):
self.driver = webdriver.Chrome(driver_path)
self.wait = WebDriverWait(self.driver, 10)
self.action = ActionChains(self.driver)
def get(self, url):
self.driver.get(url)
def find_element(self, value, method=By.XPATH):
return self.wait.until(EC.presence_of_element_located((method, value)))
def find_elements(self, value, method=By.XPATH):
return self.wait.until(EC.presence_of_all_elements_located((method, value)))
def click(self, element):
self.action.click(element).perform()
def send_keys(self, element, value):
element.send_keys(value)
def clear(self, element):
element.clear()
def close(self):
self.driver.close()
```
该封装类包含了初始化浏览器、打开链接、查找元素、点击元素、输入文本、清除文本、关闭浏览器等常用操作。使用该类可以大大简化Selenium的使用,如下所示:
```python
browser = Browser('chromedriver.exe')
browser.get('https://www.baidu.com')
input_box = browser.find_element('//input[@id="kw"]')
browser.send_keys(input_box, 'Python')
search_button = browser.find_element('//input[@id="su"]')
browser.click(search_button)
browser.close()
```
以上代码实现了打开百度首页,输入关键词“Python”,并进行搜索的功能。可以看到,使用封装后的Selenium操作起来更加方便和简洁。
阅读全文