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

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

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

目录

  • Chrome浏览器
    • 1. 下载驱动
    • 2. python代码实现
  • Firefox-火狐浏览器
    • 1. 下载驱动
    • 2. python代码
  • IE浏览器
    • 1. 下载驱动
    • 2. python代码
  • Edge浏览器
    • 1. 下载驱动
    • 2. python代码
  • Opera浏览器-欧朋浏览器
    • 1. 下载驱动
    • 2. python代码
  • 其它浏览器
    • 360极速浏览器
    • 2345浏览器
  • 浏览器不同语言
    • 检查浏览器语言
    • Chrome浏览器
    • 火狐浏览器
    • Opera浏览器
  • 系列文章

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/
驱动下载地址:https://github.com/mozilla/geckodriver/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内核的浏览器也可以使用这种方法来驱动。

浏览器不同语言

检查浏览器语言

可以通过使用selenium执行JavaScript语句来获取浏览器语言

lang = self.driver.execute_script("return window.navigator.language;")

在浏览器的控制台执行:

> window.navigator.language;
'zh-CN'

Chrome浏览器

可以以不同语言拉起Chrome浏览器,测试产品的语言自适应功能。

options = Options()
lang = "zh-CN"
options.add_argument("--lang={}".format(lang))
self.driver = webdriver.Chrome(chrome_options=options)
self.driver.get('https://www.baidu.com')

不同国家的语言代码可以参考:https://developers.google.com/admin-sdk/directory/v1/languages

或者

打开火狐浏览器语言设置界面查看各个国家的语言代码:

火狐浏览器

火狐浏览器也可以实现这个功能,实现方式如下(在我电脑上没有成功,可能版本问题):

profile = webdriver.FirefoxProfile()
profile.set_preference('intl.accept_languages', 'fr')
self.driver = webdriver.Firefox(firefox_profile=profile)
self.driver.get('https://www.baidu.com')

Opera浏览器

Opera浏览器实现方式:

browser_locale = 'en-US'
options = Options()
options.add_argument("--lang={}".format(browser_locale))
self.driver = webdriver.Opera(options=options)
self.driver.get('https://www.baidu.com')

IE浏览器语言设置需要设置系统语言,需要系统重启,无法通过设置参数的方式进行自动化设置语言。另外还有一种方案是可以通过自动化安装不同语言版本的浏览器进行测试。

--THE END--


系列文章

1、Selenium Webdriver 架构
2、Selenium Web元素定位方法
3、Selenium Web元素操作
4、Web自动化测试:xpath & CSS Selector定位
5、Selenium ActionChains、TouchAction方法
6、Selenium switch_to方法
7、Selenium Select下拉框
8、Selenium多浏览器测试
9、Selenium执行JavaScript脚本
10、selenium/appium 等待方式介绍
11、Selenium Grid:在多个主机上并行执行自动化脚本


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

Selenium多浏览器测试相关推荐

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

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

  2. Python selenium —— 用chrome的Mobile emulation模拟手机浏览器测试手机网页

    很多人发现chrome有项功能,就是在开发者工具里能够模拟手机打开网页,便想能否用selenium对此进行自动化测试.答案当然是yes! 今天博主便给大家分享下如何用chrome的MobileEmul ...

  3. 解决Selenium Webdriver执行测试时,每个测试方法都打开一个浏览器窗口的问题

    解决Selenium Webdriver执行测试时,每个测试方法都打开一个浏览器窗口的问题 参考文章: (1)解决Selenium Webdriver执行测试时,每个测试方法都打开一个浏览器窗口的问题 ...

  4. Selenium+Python3之:多线程进行跨浏览器测试

    python多线程跨浏览器测试 1.引言 2.跨浏览器操作及定义 2.1 啥是跨浏览器测试 2.2 为啥要进行跨浏览器测试 2.3 跨浏览器测试执行 3.代码编写实战 1.引言 在WebUI自动化方面 ...

  5. python 浏览器模拟手机_Python selenium —— 用chrome的Mobile emulation模拟手机浏览器测试手机网页...

    很多人发现chrome有项功能,就是在开发者工具里能够模拟手机打开网页,便想能否用selenium对此进行自动化测试.答案当然是yes! chrome-emulation 今天博主便给大家分享下如何用 ...

  6. selenium之用chrome的Mobile emulation模拟手机浏览器测试手机网页

    很多人发现chrome有项功能,就是在开发者工具里能够模拟手机打开网页,便想能否用selenium对此进行自动化测试.答案当然是yes! 今天博主便给大家分享下如何用chrome的MobileEmul ...

  7. selenium模拟手机浏览器测试

    selenium不仅仅可以测试桌面pc web浏览器,还可以对手机浏览器进行测试,从而不必用appium对手机测试,采用selenium比移动自动化有无可比拟的速度.稳定性优势: 学习目标:学会移动浏 ...

  8. Python+selenium+360浏览器实现自动测试

    最近,因工作需要爬取一个系统的数据.该系统只能用低版本IE浏览器,所以尝试了用360浏览器,考虑能够让更多人扩展该爬虫,选取selenium驱动浏览器.现在把需要用到的主要技术点整理如下,备以后查询. ...

  9. 在 Selenium 中使用 Lambdatest 进行跨浏览器测试

    Lambdatest是一个在线平台,它允许你在2000多个浏览器和操作系统上实时执行自动化和实时交互的跨浏览器测试. 使用Lambdatest可以测试公共网站和本地托管的应用程序.你只需要连接Lamb ...

最新文章

  1. Java 领域offer收割:程序员黄金 5 年进阶心得!
  2. SAP WM 确定WM移动类型配置里'存储地点参考'优先级高于'特殊移动标记'
  3. php soecket服务器搭建_Linux系统编程(32)—— socket编程之TCP服务器与客户端
  4. 探索ASP.NET MVC5系列之~~~6.Session篇(进程外Session)
  5. 前后端分离中后端常用的响应类
  6. windows media player upnp
  7. 创建 Refs 的几种方式
  8. 怎么判断自己启动的线程是否执行完成 java_Java面试笔记(上)
  9. 串-第4章-《数据结构题集》答案解析-严蔚敏吴伟民版
  10. 【诚邀】ZStack新品战略发布会4月16号如约开启
  11. 前端进阶篇——02、CSS和JS
  12. 信杂比公式_信噪比公式
  13. C++sort函数使用(成绩排名)
  14. 软件工程——NS图,PAD图
  15. Java多线程系列--【JUC集合02】- CopyOnWriteArrayList
  16. 中英对照:30句经典英语广告词欣赏
  17. [论文解读 IJCAI 19] LogAnomaly Unsupervised Detection of Sequential and Quantitative Anomalies
  18. QObject成员函数connect()函数
  19. java 石头剪刀布_java循环练习:石头剪刀布
  20. 目前最快速最好最有效的【淡化疤痕的方法】是什么

热门文章

  1. js中数组的高逼格操作(filter、sort、map、reduce)
  2. PLC模拟量输入 模拟量转换FC S_ITR
  3. 【更新】时隔半月dz论坛自动回复器(zygx8专属)终于完工
  4. BrightLineFalsingManager防误触问题
  5. Django项目实践3 - Django模型(字段、数据库操作及模型继承)
  6. python如何读取csv文件的某两行_Python 读取csv的某行
  7. 【一起学Java第二期】JDK的安装使用用记事本写第一个程序
  8. CUDA Installer 前面的 X
  9. 为什么Google优化排名前期要做长尾关键词?谷歌seo怎么做?
  10. 一文带你学会python新年倒计时