Firefox

1. Firefox路径问题

firefox火狐浏览器去完成自动化测试时,代码报了如下错误:

Cannot find firefox binary in PATH. mark sure firefox is installed

错误原因:

firefox安装在其它路径,不是默认的安装路径

解决办法:

指定firefox可执行文件路径:webdriver.firefox.bin

代码设置:

System.setProperty("webdriver.firefox.bin", "D:\\Program Files\\Mozilla Firefox\\firefox.exe");

2. selenium 3.x Firefox驱动问题

使用selenium3.x+firefox火狐浏览器去完成自动化测试时,代码报了如下错误:

The path to the driver executable must be set by the webdriver.gecko.driver system properity

错误原因:

缺少火狐浏览器驱动包。如果selenium版本是3.x的,需要使用驱动包

解决办法:

往项目中添加火狐驱动包,并加载驱动的配置。至于该驱动版本适配的浏览器和selenium版本在驱动的change log里有说明(如:使用selenium 3.5.1+firefox 56)

代码设置:

System.setProperty("webdriver.gecko.driver", "src/test/resources/geckodriver.exe");

3. selenium与驱动版本匹配问题

使用selenium2.x版本+firefox去完成自动化测试时,代码报了如下错误:

Unable to connect to host 127.0.0.1 on port 7055 after 45000ms

错误总结:

firefox浏览器版本和selenium版本不适配。

解决办法:

建议降级火狐版本到47以下(比如:selenium 2.53.0+firefox 46)

4.selenium for firefox说明

selenium 2.x

selenium 2.x中自动集成了firefox驱动。

因此只须selenium 版本与firefox浏览器版本对应即可

selenium版本 Firefox浏览器
2.25.0 v 18
2.30.0 v 19
2.31.0 v 20
2.42.2 v 29
2.44.0 v 33 (不支持31)
2.52.0 v 45.0
2.53.0 v 46.0
2.53.1 v 47.0.1

selenium 3.x

selenium,geckodriver,firefox 对应版本说明:

selenium版本 geckodriver版本 Firefox版本
3.3 0.15 v 48+
3.4 0.16 v 52
3.4 0.17 v 52
3.4 0.18 v 53
3.5 0.19 v 55
3.11 0.21 v 57
  • 从selenium 3.0.0开始就要求firefox为48及以上版本
  • selenium 3.x使用的java版本为jdk 1.8
  • selenium 3.x使用geckodriver作为firefox浏览器的驱动的替代

4、Firefox自动化相关工具链接

Change log https://raw.githubusercontent.com/SeleniumHQ/selenium/master/java/CHANGELOG

Firefox驱动https://github.com/mozilla/geckodriver/releases/

Firefox各版本 http://ftp.mozilla.org/pub/firefox/releases/

Firefox驱动 镜像 https://npm.taobao.org/mirrors/geckodriver/

InternetExplorer

1. IE浏览器驱动问题

使用IE浏览器去完成自动化测试时,代码报了如下错误:

The path to the driver executable must be set by the webdriver.ie.driver system property

错误总结:

缺少IE浏览器驱动包

解决办法:

往项目中添加IE驱动包,并加载驱动的配置。

System.setProperty("webdriver.ie.driver", "src/test/resources/IEDriverServer.exe");

下载地址 http://www.seleniumhq.org/download/

建议下载版本:3.7.0

http://selenium-release.storage.googleapis.com/index.html?path=3.7/

IE驱动版本与Selenium版本保持相同即可

http://selenium-release.storage.googleapis.com/index.html

2. IE浏览器保护模式问题

使用IE浏览器去完成自动化测试时,代码报了如下错误:

Protected Mode Settings are not the same for all zones

解决方法1:

浏览器设置(但是换一台电脑就不适用了)

打开IE浏览器->工具->安全->全部勾选启用保护模式

解决方法2:

忽略浏览器保护模式的设置InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS

代码:

//取消IE安全设置(忽略IE的Protected Mode的设置)
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true);

3. IE浏览器缩放设置

使用IE浏览器去完成自动化测试时,代码报了如下错误:

Browser zoom level was set to 125%.It should be set to 100%

错误总结:

浏览器缩放级别设置不对导致的(点工具栏页面->缩放设置)

解决办法:

忽略此设置:InternetExplorerDriver.IGNORE_ZOOM_SETTING

代码:

DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(InternetExplorerDriver.IGNORE_ZOOM_SETTING, true);

4. IE浏览器window丢失问题

使用IE浏览器去完成自动化测试时,代码报了如下错误:

unable to find element with id -- kw

错误总结:

不是因为没有设置等待时间,而是因为之前的window对象已经丢失

解决办法:

最快的解决办法是直接指定一个初始化页面

InternetExplorerDriver.INITIAL_BROWSER_URL

代码:

DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(InternetExplorerDriver.INITIAL_BROWSER_URL, "http://www.baidu.com");

Chrome

1. chrome浏览器驱动路径

使用Chrome做测试时,报了如下错误:

The path to the driver executable must be set by the webdirver.chrome.driver system properity

解决方案:

系统设置Chrome驱动文件的路径

System.setProperty("webdriver.chrome.driver", "xxx");

2. chrome浏览器与chromeDriver匹配问题

使用chrome浏览器去完成自动化测试时,chrome浏览器停止运行

chromedriver.exe 已停止工作

错误总结:

chrome浏览器版本过高,虽然根据官网上的信息,2.33的chrome驱动支持60-62的谷歌。但是60根本不行

解决办法:

降级chrome

3.Chrome与ChromeDriver版本对照表

ChromeDriver 版本 支持的 Chrome 版本
v2.41 v67-69
v2.40 v66-68
v2.39 v66-68
v2.38 v65-67
v2.37 v64-66
v2.36 v65-67
v2.35 v62-64
v2.34 v61-63
v2.33 v60-62
v2.32 v59-61
v2.31 v58-60
v2.30 v58-60
v2.29 v56-58

chrome浏览器各版本

http://www.chromedownloads.net/chrome64win/

禁止谷歌浏览器更新

https://jingyan.baidu.com/article/76a7e409f2137afc3b6e15be.html

ChromeDriver 镜像 http://npm.taobao.org/mirrors/chromedriver

Selenium 镜像 http://npm.taobao.org/mirrors/selenium

JDK版本问题

使用3.x的selenium来完成自动化测试时,代码报了如下错误:

Exception in thread "main" java.lang.UnsupportedClassVersionError:

错误总结:

3.x的selenium需要1.8的jdk,可能jdk版本过低

解决办法:

降级selenium版本,或提高jdk的版本为1.8

一文搞定所有 web 自动化常见问题的更多相关文章

  1. 一文搞定 SonarQube 接入 C#(.NET) 代码质量分析

    1. 前言 C#语言接入Sonar代码静态扫描相较于Java.Python来说,相对麻烦一些.Sonar检测C#代码时需要预先编译,而且C#代码必须用MSbuid进行编译,如果需要使用SonarQub ...

  2. 一文搞定MySQL的事务和隔离级别

    一.事务简介 事务是数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成. 一个数据库事务通常包含了一个序列的对数据库的读/写操作.它的存在包含有以下两个目的: 为数据库操作序列提供 ...

  3. 10行代码搞定移动web端自定义tap事件

    发发牢骚 移动web端里摸爬滚打这么久踩了不少坑,有一定移动web端经验的同学一定被click困扰过.我也不列外.一路走来被虐的不行,fastclick.touchend.iscroll什么的都用过, ...

  4. 一文搞定Spring Boot + Vue 项目在Linux Mysql环境的部署(强烈建议收藏)

    本文介绍Spring Boot.Vue .Vue Element编写的项目,在Linux下的部署,系统采用Mysql数据库.按照本文进行项目部署,不迷路. 1. 前言 典型的软件开发,经过" ...

  5. 一文搞定scrapy爬取众多知名技术博客文章保存到本地数据库,包含:cnblog、csdn、51cto、itpub、jobbole、oschina等

    本文旨在通过爬取一系列博客网站技术文章的实践,介绍一下scrapy这个python语言中强大的整站爬虫框架的使用.各位童鞋可不要用来干坏事哦,这些技术博客平台也是为了让我们大家更方便的交流.学习.提高 ...

  6. 21.SpringCloud实战项目-后台题目类型功能(网关、跨域、路由问题一文搞定)

    SpringCloud实战项目全套学习教程连载中 PassJava 学习教程 简介 PassJava-Learning项目是PassJava(佳必过)项目的学习教程.对架构.业务.技术要点进行讲解. ...

  7. 一文搞定FastDFS分布式文件系统配置与部署

    Ubuntu下FastDFS分布式文件系统配置与部署 白宁超 2017年4月15日09:11:52 摘要: FastDFS是一个开源的轻量级分布式文件系统,功能包括:文件存储.文件同步.文件访问(文件 ...

  8. 一文搞定Flask

    Flask 一 .Flask简介 Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是Socket服务端,其用于接收h ...

  9. 一文搞定 Git 相关概念和常用指令

    我几乎每天都使用 Git,但仍然无法记住很多命令. 通常,只需要记住下图中的 6 个命令就足以供日常使用.但是,为了确保使用地很顺滑,其实你应该记住 60 到 100 个命令. Git 相关术语 Gi ...

随机推荐

  1. linq 获取不重复数据,重复数据 var unique = arr.GroupBy(o => o).Where(g => g.Count() == 1) .Select(g => g.ElementAt(0));

    static void Main(string[] args) { int[] arr = { 1, 3, 3, 3, 3, 4, 5, 4, 5, 8, 9, 3 }; //不重复 var uniq ...

  2. [笔记] NuGet Warning NU5100 处理

    问题描述 在将 .NET 项目编译成 NUGET 包时,如果项目引用了其它 dll 文件,则可能出现这个警告,如果不处理,Nuget 包中可能无法正确引用所添加的 dll . 处理方式 在项目 .cs ...

  3. 阿里Jvm必问面试题及答案

    什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”? Java虚拟机是一个可以执行Java字节码的虚拟机进程.Java源文件被编译成能被Java虚拟机执行的字节码文件. Java被设计 ...

  4. Socket与WebSocket以及http与https重新总结

    Socket与WebSocket以及http与https重新总结 一.Socket 网络中的Socket是一个抽象的接口 ,而是为了方便使用TCP或UDP而抽象出来的一层 ,可以理解为网络中连接的两端 ...

  5. python 父类方法中使用不同的子类中的不同类对象

    # coding:utf-8 class Animal(object): def __init__(self): self._name = None self._f = None def eat(se ...

  6. Java面向对象——相关基本定义

    Java面向对象——相关基本定义 摘要:本文简单介绍了面向对象的编程方式,以及与之有关的一些基本定义. 面向对象 什么是面向对象 面向对象编程是一种对现实世界建立计算机模型的一种编程方法.简称OOP( ...

  7. linux桌面系统的约定

    linux系统的桌面系统基本遵循同样的约定. mime类型 在linux下,关于文件类型的信息通常放在/usr/share/mime./usr/local/share/mime和用户目录下,所有应用程 ...

  8. Windows Socket知识总结

     目录 0 理解Socket 1 WinSock API 2 阻塞socket 3 非阻塞Socket 4 套接字IO模型  4.1 套接字IO模型:select(选择)  4.2 套接字IO模型:W ...

  9. Arduino控制舵机

    一.接线 舵机 Arduino GND GND +5V 5V PWN 10 其中信号线PWN接arduino上任意带波浪号的引脚都可,我这里选择的是10号引脚,注意在程序中绑定的引脚要和连接的引脚相同 ...

  10. Java打印9*9乘法表

    废话不多说直接贴代码, 先放一个标准的正三角形状的 for (int i = 1; i <= 9; i++) { for (int j = 1; j <= i; j++) { System ...