简介:Selenium中运行需要先配置WebDriver,各主流浏览器安装配置大同小异。

关联攻略:

Selenium分布式运行:SeleniumGrid

Python + Jenkins + Selenium-Grid实现分布式web-ui自动化测试(centos+win10为例)

基本操作:

1、下载安装目标浏览器。
2、查看浏览器版本:设置 - 帮助 / 关于浏览器等
3、下载driver
4、解压driver复制粘贴到配置好的环境变量Python所在目录
5、编写代码调试启动

注意事项:

若找不到对应版本,则使用当前浏览器版本之后的driver。

例如:浏览器版本:99,webdriver只匹配有98,100,则选100进行下载。

Chrome:

https://npm.taobao.org/mirrors/chromedriver/

Edge:

https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/

Firefox:

https://github.com/mozilla/geckodriver/releases

Opera:

https://github.com/operasoftware/operachromiumdriver/releases

Safari:mac下才能配置

https://www.jianshu.com/p/17b6ea2c0f06

源码:

from common.logger import log
from selenium import webdriver
from selenium.webdriver.common.by import By
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 opera():
    log.info("启动Opera浏览器")
    return webdriver.Opera()


def safari():
    log.info("启动Safari浏览器")
    return webdriver.Safari()


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,
        "opera": opera,
        "chrome_headless": chrome_headless,
        "firefox_headless": firefox_headless, }
    return driver_dict[browser_type]()


if __name__ == '__main__':
    url = "http://www.baidu.com"
    driver_list = ["chrome", "firefox", "edge", "opera", "chrome_headless", "firefox_headless"]
    for driver in driver_list:
        browser = get_browser(driver)  # 使用浏览器
        browser.get(url)
        title = browser.title
        print("title:", title)
        browser.quit()

运行结果:
图片
微信公众号:玩转测试开发
欢迎关注,共同进步,谢谢!

在这里插入图片描述

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐