问题描述
我无法使用具有以下配置的量角器 7 运行 e2e 测试
...
directConnect: true,capabilities: {
browserName: 'firefox'
}
...
在我的 MacOS Catalina 上。我注意到了
webdriver-manager 更新
来自项目 package.json 的命令下载 geckodriver-v0.29.1。
正如标题中提到的,当我运行测试时,日志不会超出直接使用 FirefoxDriver 的范围。如何查看更多详细信息(量角器中是否有详细选项?),以及如何解决问题?
解决方法
通过 Splaktars 答案,我能够使用典型的 directConnect: true 设置启动 Firefox。
我必须从 Github Releases 下载 geckodriver-v0.29.1-macos.tar.gz 包并解压二进制文件。然后我用包中的副本替换了之前通过 webdriver-manager 下载的 geckodriver-v0.29.1 二进制文件。
在那之后,我启动了我的测试以确保一切仍然部分工作,最后看到了 MacOS 安全弹出窗口。我运行了删除隔离标志的命令:
xattr -r -d com.apple.quarantine /path/to/geckodriver-v0.29.1
重新启动测试,最后 Firefox 弹出... 再次感谢 Splaktar,刚刚注册了一个帐户,所以我无法评论或投票寻求帮助
,v0.29.1 发行说明中似乎存在一个已知问题: https://github.com/mozilla/geckodriver/releases/tag/v0.29.1
那些指向一些 GeckoDriver macOS 公证文档: https://firefox-source-docs.mozilla.org/testing/geckodriver/Notarization.html
但是那个页面说
通过其他方式下载的任意软件,例如 curl(1) 不受本次变更影响。
我没有收到任何安全弹出窗口或警告,只有您看到的挂起。
运行
xattr -r -d com.apple.quarantine /Users/splaktar/Git/app/node_modules/protractor/node_modules/webdriver-manager/selenium/geckodriver-v0.29.1
没有帮助。
在 https://github.com/angular/protractor/issues/4253 中,Firefox 和 directConnect
支持中提到了很多旧问题。我尝试将 directConnect: false
与来自该问题的建议一起使用:
config.capabilities = {
'browserName': 'firefox','marionette': true,'elementScrollBehavior': 1
};
config.directConnect = false;
config.seleniumAddress = 'http://localhost:4444';
config.localSeleniumStandaloneOpts = {
jvmArgs: ['-Dwebdriver.gecko.driver=node_modules/protractor/node_modules/webdriver-manager/selenium/geckodriver-v0.29.1']
};
我运行了 webdriver-manager start
,然后运行了我的测试,但很快就失败了,控制台中出现了错误页面的 HTML 和 From: Task: WebDriver.createSession() Process exited with error code 199
。
我也试过设置
config.firefoxPath = '/usr/local/bin/firefox-bin';
在那里创建到 /Applications/Firefox.app/Contents/MacOS/firefox-bin
的符号链接之后。但这根本没有帮助。 Firefox 永远不会启动。我也尝试过 Firefox 开发者版。
仍在调查中...