【发布时间】:2017-02-09 10:39:03
【问题描述】:
我使用 Selenium 进行自动浏览器测试已经有一段时间了。我从来没有弄清楚如何让它在 Firefox 以外的任何东西上运行。好吧,现在 FireFox 将启动,但不会被拉到前面,它只是坐在那里,什么都不做。我有一种感觉是因为 FireFox 自己更新了。
我正在运行 macOS Sierra。我已经在 Safari 中安装并启用了 WebDriver 2.48 扩展。
我已经下载并尝试了 selenium-server-standalone-2.53.1.jar 和 selenium-server-standalone-3.0.0-beta4.jar,但我得到了不同的结果。使用 2.53.1 和 Firefox 49,它会启动 Firefox,但如前所述,它只是坐在那里,什么都不做,甚至不加载 URL。最终它超时并出现以下错误:
无法打开连接:45000 毫秒后无法连接到端口 7055 上的主机 127.0.0.1。火狐控制台输出: 08198ce6fd}","syncGUID":"mT5F_TRS51sP","location":"app-global","version":"49.0.1","type":"theme","internalName":"classic/1.0", "updateURL":null,"updateKey":null,"optionsURL":null,"optionsType":null,"aboutURL":null,"icons":{"32":"icon.png","48":" icon.png"},"iconURL":null,"icon64URL":null,"defaultLocale":{"name":"Default","description":"默认主题。","creator":"Mozilla", "homepageURL":null,"contributors":["Mozilla Contributors"]},"visible":true,"active":true,"userDisabled":false,"appDisabled":false,"descriptor":"/Applications/ Firefox.app/Contents/Resources/browser/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi","installDate":1475253044000,"updateDate":1475253044000,"applyBackgroundUpdates":1,"skinnable":true ,"size":7140,"sourceURI":null,"releaseNotesURI":null,"softDisabled":false,"foreignInstall":false,"hasBinaryComponents":false,"strictCompatibility":true,"locales":[], "targetApplications":[{"id":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","minVersion":"49.0.1","maxVersion":"49.0 .1"}],"targetPlatforms":[],"seen":true} 1475260611275 addons.xpi DEBUG getModTime:递归扫描 {972ce4c6-7e08-4474-a285-3208198ce6fd} 1475260611276 DeferredSave.extensions.json DEBUG 保存更改 1475260611277 addons.xpi DEBUG 使用已安装插件的更改更新数据库 1475260611277 addons.xpi-utils DEBUG 更新插件状态 1475260611277 addons.xpi-utils DEBUG 编写插件列表 1475260611279 addons.xpi DEBUG 为 /Applications/Firefox.app/Contents/Resources/browser/features/e10srollout@mozilla.org.xpi 注册清单 1475260611279 addons.xpi DEBUG 在 e10srollout@mozilla.org 版本 1.2 上调用引导方法启动 1475260611279 addons.xpi DEBUG 为 /Applications/Firefox.app/Contents/Resources/browser/features/firefox@getpocket.com.xpi 注册清单 1475260611280 addons.xpi DEBUG 在 firefox@getpocket.com 版本 1.0.4 上调用 bootstrap 方法启动 1475260611280 addons.xpi DEBUG 为 /Applications/Firefox.app/Contents/Resources/browser/features/webcompat@mozilla.org.xpi 注册清单 1475260611281 addons.xpi DEBUG 在 webcompat@mozilla.org 1.0 版上调用引导方法启动 1475260611284 addons.manager DEBUG 为 XPIProvider 注册关闭阻止程序 1475260611284 addons.manager DEBUG Provider完成启动:XPIProvider 1475260611284 addons.manager DEBUG 起始提供者:LightweightThemeManager 1475260611284 addons.manager DEBUG 为 LightweightThemeManager 注册关闭阻止程序 1475260611285 addons.manager DEBUG Provider完成启动:LightweightThemeManager 1475260611285 addons.manager DEBUG 起始提供者:GMPProvider 1475260611294 addons.manager DEBUG 为 GMPProvider 注册关闭阻止程序 1475260611294 addons.manager DEBUG Provider完成启动:GMPProvider 1475260611294 addons.manager DEBUG 起始提供者:PluginProvider 1475260611295 addons.manager DEBUG 为 PluginProvider 注册关闭阻止程序 1475260611295 addons.manager DEBUG Provider完成启动:PluginProvider 1475260611295 addons.manager DEBUG 完成启动序列 1475260611717 addons.manager DEBUG 启动提供程序: 1475260611717 addons.manager DEBUG 注册关闭阻止程序 1475260611718 addons.manager DEBUG Provider完成启动: 1475260611721 DeferredSave.extensions.json 调试开始写入 1475260611881 addons.repository DEBUG 未找到 addons.json。 1475260611881 DeferredSave.addons.json DEBUG 保存更改 1475260611884 DeferredSave.addons.json 调试启动计时器 1475260611917 addons.manager DEBUG 起始提供者:PreviousExperimentProvider 1475260611918 addons.manager DEBUG 为 PreviousExperimentProvider 注册关闭阻止程序 1475260611919 addons.manager DEBUG Provider 启动完成:PreviousExperimentProvider 1475260611924 DeferredSave.extensions.json DEBUG 写入成功 1475260611924 addons.xpi-utils DEBUG XPI 数据库已保存,将架构版本首选项设置为 17 1475260611942 DeferredSave.addons.json 调试开始写入 1475260611957 DeferredSave.addons.json DEBUG 写入成功 (Behat\Mink\Exception\DriverException)
使用 3.0.0-beta-4 它甚至不启动 Firefox,它只是抛出以下错误:
无法打开连接:驱动程序可执行文件的路径必须由 webdriver.gecko.driver 系统属性设置;有关详细信息,请参阅https://github.com/mozilla/geckodriver。最新版本可以从https://github.com/mozilla/geckodriver/releases下载(Behat\Mink\Exception\DriverException)
如果我将我的 behat.yml 配置切换为使用 Safari (browser_name: safari),在 2.53.1 中它会启动一个 Safari 实例,该实例也不会出现在前面或做任何事情(如 Firefox),我得到以下信息错误:
未知命令:{"id":"f3xi7h2t2u16","name":"mouseMoveTo","parameters":{"element":":wdc:1475260954832"}}(警告:服务器未提供任何堆栈跟踪信息) 命令持续时间或超时:5 毫秒 构建信息:版本:'2.53.1',修订:'a36b8b1',时间:'2016-06-30 17:37:03' 系统信息:主机:'flightbyte.local',ip:'127.0.0.1',os.name:'Mac OS X',os.arch:'x86_64',os.version:'10.12',java.version:' 1.8.0_101' 驱动程序信息:org.openqa.selenium.safari.SafariDriver 功能 [{browserName=safari,takeScreenshot=true, javascriptEnabled=true, version=10.0, cssSelectorsEnabled=true, platform=MAC, secureSsl=true}] 会话 ID:空 (WebDriver\Exception\UnknownError)
有了 3.0.0-beta4,我得到...
无法打开连接:null(警告:服务器未提供任何堆栈跟踪信息) 命令持续时间或超时:0 毫秒 构建信息:版本:'3.0.0-beta4',修订:'3169782',时间:'2016-09-29 10:29:23 -0700' 系统信息:主机:'myapp.local',ip:'127.0.0.1',os.name:'Mac OS X',os.arch:'x86_64',os.version:'10.12',java.version:' 1.8.0_101' 驱动信息:driver.version:SafariDriver (Behat\Mink\Exception\DriverException)
在上述所有情况下,我只需打开独立服务器 .jar 文件,然后像往常一样运行我的行为测试。今天我想我知道如何让 chomedriver 工作,所以当我尝试将它与 chrome 一起使用时,我以这种方式启动它......
java -jar -Dwebdriver.chrome.driver='/Users/me/bin/selenium/drivers/chromedriver' /Users/me/bin/selenium/selenium-server-standalone-2.53.1.jar
...我将behat.yml 中的browser_name 键更改为googlechrome。当我以这种方式运行它时,我收到以下错误...
无法打开连接:最佳匹配驱动程序提供程序 org.openqa.selenium.safari.SafariDriver 无法为 Capabilities [{browser=firefox, name=Behat feature suite, browserName=googlechrome, ignoreZoomSetting= 创建新的驱动程序实例假,标签=[myapp.local,PHP 7.0.10]}] 构建信息:版本:'2.53.1',修订:'a36b8b1',时间:'2016-06-30 17:37:03' 系统信息:主机:'myapp.local',ip:'127.0.0.1',os.name:'Mac OS X',os.arch:'x86_64',os.version:'10.12',java.version:' 1.8.0_101' 驱动信息:driver.version:未知(Behat\Mink\Exception\DriverException)
使用 3.0.0-beta4 我得到了这个:
无法打开连接:最佳匹配驱动程序提供程序 org.openqa.selenium.safari.SafariDriver 无法为 Capabilities [{browser=firefox, name=Behat feature suite, browserName=googlechrome, ignoreZoomSetting= 创建新的驱动程序实例假,标签=[flightbyte.local,PHP 7.0.10]}] 构建信息:版本:'3.0.0-beta4',修订:'3169782',时间:'2016-09-29 10:29:23 -0700' 系统信息:主机:'flightbyte.local',ip:'127.0.0.1',os.name:'Mac OS X',os.arch:'x86_64',os.version:'10.12',java.version:' 1.8.0_101' 驱动信息:driver.version:未知(Behat\Mink\Exception\DriverException)
我的 behat.yml 是这样开始的:
default:
extensions:
Laracasts\Behat:
env_path: .env.testing
Behat\MinkExtension:
default_session: laravel
base_url: @987654323@
browser_name: googlechrome (this is where I switch browsers)
laravel: ~
selenium2: ~
我的 composer.json 包含这个:
"require-dev": {
"fzaninotto/faker": "~1.4",
"mockery/mockery": "0.9.*",
"phpunit/phpunit": "~5.4",
"phpspec/phpspec": "~2.1",
"behat/behat": "^3.2",
"behat/mink": "^1.7",
"behat/mink-extension": "^2.2",
"laracasts/behat-laravel-extension": "dev-master",
"behat/mink-selenium2-driver": "^1.3@dev",
"symfony/dom-crawler": "~3.0",
"symfony/css-selector": "~3.0"
},
我确实尝试将 behat 和 mink 的版本调整为我在 packagist 上看到的内容,然后是 composer update。
我只需要让这些测试再次运行。我真的不在乎它是哪个浏览器,我宁愿它不是 Firefox,但这就是我一直使用的浏览器,直到一切都崩溃了。
任何帮助将不胜感激!
【问题讨论】:
-
我能够从备份中恢复 Firefox 45 并且可以通过这种方式运行我的测试。所以我猜 Firefox > 45 或者可能只有 49 存在问题。
-
看看Running selenium server standalone and chromedriver 和Running behat2 tests with different browsers。硒有其自身的问题。根据我自己的经验,2.43.1 在所有操作系统中都运行良好。只要确保您阅读了here 版本中的
notes.txt并下载适当的版本。注释解释了兼容的浏览器版本等。