Selenium:Chrome、Edge、Firefox、Opera、Safari常用WebDriver下载安装[通俗易懂]

Selenium:Chrome、Edge、Firefox、Opera、Safari常用WebDriver下载安装[通俗易懂]简介:Selenium中运行需要先配置WebDriver,各主流浏览器安装配置大同小异。关联攻略:Selenium分布式运行:SeleniumGridPython+Jenkins+Selenium-Grid实现分布式web-ui自动化测试(centos+win10为例)基本操作:1、下载安装目标浏览器。2、查看浏览器版本:设置-帮助/关于浏览器等3、下载driver4、解压driver复制粘贴到配置好的环境变量Python所在目录5、编写代码调试启动注意事项:若找不到对

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

简介: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()

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

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/191990.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • acwing-190. 字串变换(双向bfs)

    acwing-190. 字串变换(双向bfs)已知有两个字串 A, B 及一组字串变换的规则(至多 6 个规则):A1→B1A2→B2…规则的含义为:在 A 中的子串 A1 可以变换为 B1、A2 可以变换为 B2…。例如:A=abcd B=xyz变换规则为:abc → xu ud → y y → yz则此时,A 可以经过一系列的变换变为 B,其变换的过程为:abcd → xud → xy → xyz共进行了三次变换,使得 A 变换为 B。输入格式输入格式如下:A BA1 B1A2 B2… …第一行是两个给定的字符串

    2022年8月9日
    4
  • python可以自动回收垃圾吗_python 数据清洗

    python可以自动回收垃圾吗_python 数据清洗前言现在的高级语言如java,c#等,都采用了垃圾回收机制,而不再像c,c++里,需要用户自己管理内存。自己管理内存及其自由,可以任意申请内存,但这如同一把双刃剑,可能会造成内存泄漏,空指针等bug

    2022年7月28日
    8
  • 分享几个IP获取地理位置的API接口(最全面的了)

    分享几个IP获取地理位置的API接口(最全面的了)

    2021年11月5日
    63
  • orange软件使用[通俗易懂]

    orange做数据分析契机实验手册目录orange软件部分界面展示小试牛刀:数据导入和展示小试牛刀:散点图绘制总结契机今天在上大数据时代实验课,作为一名软件工程专业的大三学生,在上这节公选课之前就决定这节课做完这个学期所有的实验报告,可以说“有亿点”不屑;尤其当老师说Python很麻烦的时候,我更是震惊了,因为我接触过这么多编程语言,Python真的很友好了,很傻瓜,但是当老师打开实验手册的时候,我真香了!!!下面先来看看手册的目录:实验手册目录为什么会真香呢,因为目录里这些有好多机器学习算法!

    2022年4月4日
    678
  • Java IO流学习总结一:输入输出流[通俗易懂]

    Java IO流学习总结一:输入输出流[通俗易懂]JavaIO流学习总结一:输入输出流转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/53761199本文出自【赵彦军的博客】Java流类图结构:流的概念和作用流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直

    2022年4月27日
    42
  • 数组转集合 集合转数组「建议收藏」

    数组转集合 集合转数组「建议收藏」//数组转集合   //数组转集合虽然不能增加减少但可以使用其他集合的方法 比如包含   publicstaticvoidmain(String[]args){   //demo1();  //int[]arr={11,22,33,44,55};  //Listlist=Arrays.asList(arr);基本数据类型的数组转换成集合,会

    2022年6月16日
    29

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号