一文搞定所有 web 自动化常见问题

本贴最后更新于 257 天前,其中的信息可能已经时移世易

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

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

1 操作
shakebabe 在 2020-08-06 17:35:53 更新了该帖
8 回帖
请输入回帖内容 ...
  • 641914517

    该贴内容清晰

  • Mo_oM

    加油!

  • Mo_oM

    加油呀!

  • KafirLily

    YdqnzTyA

  • liujinwen

    auto test liu

  • manman

    测试是否通过

  • x838902

    作业测试

  • x838902

    作业测试(投诉老师有让刷回复的嫌疑(狗头))

请输入回帖内容 ...