在浏览器的兼容性测试中,会测试产品在不同浏览器上的兼容性,比较主流的浏览器有IE、Firefox、Chrome,Opera,Safari等。还有其它如360、QQ、遨游、百度等浏览器都是基于IE或者chrome内核,或者IE+Chrome双内核开发,在测试这类浏览器时可以调用对应内核驱动。

不同的浏览器需要对应的驱动程序,这样selenium才能与浏览器进行通信。在启动WebDriver之前可以指定驱动的绝对位置,但还是建议将驱动添加到环境变量中,这样代码更易于维护,容易移植。

下面介绍selenium对几种浏览器的远程控制方法:

Chrome浏览器

1. 下载驱动

首先查看浏览器版本号,根据浏览器的版本号去下载对应的 chromedriver,Chrome浏览器版本与对应的驱动参考:https://sites.google.com/a/chromium.org/chromedriver/downloads

驱动下载地址:https://chromedriver.storage.googleapis.com/index.html

解压并将驱动添加到环境变量中

2. python代码实现

from selenium.webdriver import Chrome
browser_locale = 'fr-FR'
options = Options()
options.add_argument("--lang={}".format(browser_locale)) # 设置浏览器语言
self.driver = webdriver.Chrome(chrome_options=options)
self.driver.get('https://www.baidu.com')

Firefox-火狐浏览器

1. 下载驱动

浏览器版本、驱动geckodriver版本、Selenium版本对应关系参考:https://firefox-source-docs.mozilla.org/testing/geckodriver/Support.html

下载地址:http://ftp.mozilla.org/pub/firefox/releases/

2. python代码

from selenium.webdriver import Firefox
self.driver = webdriver.Firefox()
self.driver.get('https://www.baidu.com')

IE浏览器

1. 下载驱动

下载IEDriverServer.exe :http://selenium-release.storage.googleapis.com/index.html

IE浏览器下载:https://support.microsoft.com/zh-cn/topic/%E4%B8%8B%E8%BD%BD-internet-explorer-11-%E8%84%B1%E6%9C%BA%E5%AE%89%E8%A3%85%E7%A8%8B%E5%BA%8F-99d492a1-3a62-077b-c476-cf028aff9a7f

注意:设置internet选项>安全 这4个选项全勾选或者不勾选,不然无法驱动IE浏览器。

2. python代码

from selenium.webdriver import Ie
self.driver = webdriver.Ie()
self.driver.get('https://www.baidu.com')

Edge浏览器

1. 下载驱动

Edge浏览器版本与edgedriver驱动版本对应关系参考:https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/

edgedriver驱动下载地址:https://msedgewebdriverstorage.z22.web.core.windows.net/

2. python代码

from selenium.webdriver import Edge
self.driver = Edge()
self.driver.get('https://www.baidu.com')

Opera浏览器-欧朋浏览器

1. 下载驱动

Opera浏览器版本与OperaDriver驱动版本对应关系参考:https://github.com/operasoftware/operachromiumdriver/releases

Opera浏览器历史版本下载地址:https://get.geo.opera.com/pub/opera/desktop/

2. python代码

from selenium.webdriver import Opera
self.driver = Opera()
self.driver.get('https://www.baidu.com')

其它浏览器

360极速浏览器

360极速浏览器采用chrome内核,可以使用对应版本的chromedriver

option=webdriver.ChromeOptions()
option.binary_location=r'D:/software/360Chrome/Chrome/Application/360chrome.exe'
self.driver=webdriver.Chrome(options=option)
self.driver.get('https://www.baidu.com')

binary_location为360极速浏览器安装路径下的可执行文件360chrome.exe的路径

2345浏览器

2345浏览器是基于IE+Chrome双内核开发,可以使用chromedriver来驱动它:

option=webdriver.ChromeOptions()
option.binary_location=r'C:/Program Files (x86)/2345Soft/2345Explorer/2345Explorer.exe'
self.driver=webdriver.Chrome(options=option)
self.driver.get('https://www.baidu.com')

其它基于chrome内核的浏览器也可以使用这种方法来驱动,基于IE内核开发的浏览器还没办法控制。

--THE END--

文章标题:Selenium多浏览器测试

本文作者:hiyo

本文链接:https://hiyong.gitee.io/posts/selenium-browsers/

欢迎关注公众号:「测试开发小记」及时接收最新技术文章!

Selenium多浏览器测试的更多相关文章

  1. Python多线程Selenium跨浏览器测试

    前言 在web测试中,不可避免的一个测试就是浏览器兼容性测试,在没有自动化测试前,我们总是苦逼的在一台或多台机器上安装N种浏览器,然后手工在不同的浏览器上验证主业务流程和关键功能模块功能,以检测不同浏 ...

  2. 【Python】详解Python多线程Selenium跨浏览器测试

    前言 在web测试中,不可避免的一个测试就是浏览器兼容性测试,在没有自动化测试前,我们总是苦逼的在一台或多台机器上安装N种浏览器,然后手工在不同的浏览器上验证主业务流程和关键功能模块功能,以检测不同浏 ...

  3. selenium + python 多浏览器测试

    selenium + python 多浏览器测试 支持库包 在学习 Python + Selenium 正篇之前,先来看下对多浏览器模拟的支持.目前selenium包中已包含webdriver,hel ...

  4. Python+Selenium学习笔记18 - 不开启浏览器测试

    运行脚本时间比较长时可以不打开浏览器测试,这样在测试运行时,电脑还是可以用作其他操作的. 只需要在运行脚本上加上下面代码的678行即可 1 # coding = utf-8 2 3 from sele ...

  5. WebDriver多浏览器测试

    selenium2 基于对象的测试,在selenium2中一共支持以下浏览器: Firefox(FirefoxDriver) IE(InternetExplorerDriver) Chrome(Chr ...

  6. Selenium Grid分布式测试入门详解

    本文对Selenium Grid进行了完整的介绍,从环境准备到使用Selenium Grid进行一次完整的多节点分布式测试. 运行环境为Windows 10,Selenium版本为 3.5.0,Chr ...

  7. python爬虫:使用Selenium模拟浏览器行为

    前几天有位微信读者问我一个爬虫的问题,就是在爬去百度贴吧首页的热门动态下面的图片的时候,爬取的图片总是爬取不完整,比首页看到的少.原因他也大概分析了下,就是后面的图片是动态加载的.他的问题就是这部分动 ...

  8. [Python爬虫]使用Selenium操作浏览器订购火车票

    这个专题主要说的是Python在爬虫方面的应用,包括爬取和处理部分 [Python爬虫]使用Python爬取动态网页-腾讯动漫(Selenium) [Python爬虫]使用Python爬取静态网页-斗 ...

  9. Python开发爬虫之动态网页抓取篇:爬取博客评论数据——通过Selenium模拟浏览器抓取

    区别于上篇动态网页抓取,这里介绍另一种方法,即使用浏览器渲染引擎.直接用浏览器在显示网页时解析 HTML.应用 CSS 样式并执行 JavaScript 的语句. 这个方法在爬虫过程中会打开一个浏览器 ...

随机推荐

  1. java ipv6发邮件需要注意的点

    和ipv4发邮件一样,毕竟ip只是用来找地址的,v4 v6使用上基本没区别. 但有一点得注意:java ipv6采用发送RST包来通知邮件服务器断开连接,这样会导致客户端抛 MessagingExce ...

  2. 第15.2节 PyCharm支持Python解释器的配置调整

    上节介绍了PyCharm的安装与简单使用,本节介绍PyCharm相关的配置调整,以支持在PyCharm环境下集成Python解释器进行程序的编译. 一. 工程配置调整 在执行文件前,可能需要对PyCh ...

  3. PyQt学习随笔:Model/View中设置视图数据项可编辑的方法

    在视图对象中调用setEditTriggers方法可以设置视图对象中的数据项是否可编辑以及编辑的触发方法. setEditTriggers方法是QAbstractItemView的方法,语法如下: s ...

  4. baby sqli 联合查询加入数据 手工注入

    0x00 BabySQli 原题目描述:刚学完sqli,我才知道万能口令这么危险,还好我进行了防护,还用md5哈希了密码! 登陆页面,查看源码后点进search.php看到一段可疑的句子MMZFM42 ...

  5. element ui只输入数字校验

    注意:圈起来的两个地方,刚开始忘记写type='number'了,导致可以输入'123abc'这样的,之后加上了就OK了

  6. PHash从0到1

    背景 在重复图识别领域,对于识别肉眼相同图片,PHash是很有用的,而且算法复杂度很低.它抓住了 " 人眼对于细节信息不是很敏感 " 的特性,利用DCT变换把高频信息去掉,再加上合 ...

  7. Panda 交易所快报 央行数字货币测试进入C端流量入口

    近年来,央行数字货币的研发进展备受市场关注.近期,Panda 交易所注意,央行数字货币研究所与滴滴出行已达成战略合作协议,共同研究探索数字人民币在智慧出行领域的场景创新和应用.此外,Panda 交易所 ...

  8. 六、Zookeeper-开源客户端ZkClient与Curator

    ZkClient 从创建会话.创建节点.读取数据.更新数据.删除节点拉介绍ZkClient 添加依赖: pom.xml <dependency> <groupId>com.10 ...

  9. rsync全网备份low方法

    要求: 1.基本备份要求已知3 台服务器主机名分别为web01.backup .nfs01,主机信息见下表:服务器说明外网IP(NAT) 内网IP(NAT) 主机名称nginx web 服务器10.0 ...

  10. 本地安装yum源脚本

    rpm -qa|grep yum   //检查是否安装了yum. 如果没有安装就执行下面的文件 创建一个以xxx.sh结尾的文件 #!/bin/bash #创建两个文件用于挂载文件 mkdir /mn ...