from selenium.webdriver import Chrome, ChromeOptions
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as ec
from loguru import logger
from collections import namedtuple
Locator = namedtuple('Locator', ('type', 'value'))
class Browser:
def __init__(self, driver=None, config=None):
self.driver = driver or Chrome()
self.config = config or {}
self.waiter = WebDriverWait(self.driver, timeout=self.config.get('timeout', 20))
# 页面级操作
def get(self, url):
logger.info(f'打开网页 => {url}')
self.driver.maximize_window()
self.driver.set_page_load_timeout(self.config.get('page_max_load_time', 20))
self.driver.get(url)
def f5(self):
self.driver.refresh()
def close(self):
self.driver.close()
@property
def html(self):
return self.driver.page_source
# js操作
def js(self, script: str, *args):
self.driver.execute_script(script, *args)
# 元素级操作
def _accord_wait(self, scanner):
"""显示等待"""
return self.waiter.until(scanner)
def find_element(self, locator: Locator):
return self._accord_wait(ec.presence_of_element_located(locator))
def find_elements(self, locator):
return self._accord_wait(ec.presence_of_all_elements_located(locator))
def input(self, locator: Locator, text):
self.find_element(locator).send_keys(text)
def click(self, locator: Locator):
self.find_element(locator).click()
def text(self, locator: Locator):
return self.find_element(locator).text
def test():
options = ChromeOptions()
options.add_argument('--headless') # 无界面
options.add_argument('--no-sandbox') # root权限
options.add_argument('--disable-dev-shm-usage') # 禁止共享内存
driver = Chrome(options=options)
browser = Browser(driver=driver)
browser.get('http://www.baidu.com')
selenium-浏览器操作封装
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
上一篇:selenium-等待
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
selenium操作浏览器
selenium操作浏览器操作浏览器的常用方法"""selenium操作浏览器的方法"""# 最大化浏览器driver.maximize_window()# 设置浏览器大小driver.set_window_size(height=800, width=600) #
chrome python firefox chrome浏览器 刷新页面