Python:封装浏览器驱动

源码中log:参考往期
Python:封装logging模块和引用

封装浏览器驱动:

from common.logger import log
from selenium import webdriver
from selenium.webdriver.chrome.options import Options as ChromeOps
from selenium.webdriver.firefox.options import Options as FirefoxOps


def chrome():
    log.info("启动Chrome浏览器")
    return webdriver.Chrome()


def firefox():
    log.info("启动Firefox浏览器")
    return webdriver.Firefox()


def edge():
    log.info("启动Edge浏览器")
    return webdriver.Edge()


def chrome_headless():
    chrome_options = ChromeOps()
    chrome_options.add_argument('--no-sandbox')  # 解决DevToolsActivePort文件不存在的报错
    chrome_options.add_argument('--disable-gpu')  # 谷歌文档提到需要加上这个属性来规避bug
    chrome_options.add_argument('--hide-scrollbars')  # 隐藏滚动条, 应对一些特殊页面
    chrome_options.add_argument('blink-settings=imagesEnabled=false')  # 不加载图片, 提升速度
    chrome_options.add_argument('--headless')  # 浏览器不提供可视化页面. linux下如果系统不支持可视化不加这条会启动失败
    log.info("启动Chrome无界面浏览器")
    return webdriver.Chrome(options=chrome_options)


def firefox_headless():
    options = FirefoxOps()
    options.add_argument('-headless')
    log.info("启动Firefox无界面浏览器")
    return webdriver.Firefox(options=options)


def get_browser(browser_type):
    driver_dict = {"chrome": chrome, "firefox": firefox, "edge": edge,
                   "chrome_headless": chrome_headless,
                   "firefox_headless": firefox_headless, }
    return driver_dict[browser_type]()


if __name__ == '__main__':
    url = "http://www.baidu.com"
    driver = get_browser("chrome_headless")  # 使用浏览器
    driver.get(url)
    message = driver.find_element_by_id("su").get_property("value")
    print("message:", message)
    driver.quit()

微信公众号:玩转测试开发
欢迎关注,共同进步,谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值