无法连接到 SafariDriver (Safari 10)
Failed to connect to SafariDriver (Safari 10)
我在 运行 我的量角器测试 mac for safari 时出现以下错误
Failed to connect to SafariDriver after 10082 ms
Build info: version: '2.53.1', revision: 'a36b8b1',
os.arch: 'x86_64', os.version: '10.12.2', java.version: '1.8.0_101'
Driver info: driver.version: SafariDriver
能力:
name: 'Safari',
browserName: 'safari',
logName: 'Safari',
shardTestFiles: true,
maxInstances: 2
为此我们需要特定的 Safari 驱动程序吗?如果是,我可以从哪里得到它,它应该在 .conf
文件中的什么地方声明。
谢谢!
是的,您需要安装a specific safari driver in order to launch it inside of protractor. And of course, you need to be on a mac. Protractor is essentially a layer built on top of Selenium,因此您需要安装Safari 的selenium 驱动程序,它作为Safari 插件实现。
这是您需要做的:
- 从 here 下载 safari 插件。
- 运行 插件
- Select "Trust" safari 提示时的插件
驱动程序现已安装,您的量角器进程应该可以使用。
这是 Selenium 2.48 的驱动程序。我找不到更新的版本,因此如果此驱动程序版本不 运行 当前版本的量角器,您将需要使用基于 Selenium 2.48 的旧版本量角器或构建来自源的 safari 驱动程序。
首先,从 Safari 10 开始,Safari 捆绑了一个新的驱动程序实现。旧驱动程序(扩展)已弃用。您使用的是 macOS 10.12.2,所以这是您的情况。要在 Safari 中启用新驱动程序,请在 Develop 菜单中选中 Allow Remote Automation 复选框。如果您没有此菜单,请启用它:首选项 > 高级 > 在菜单栏中显示开发菜单.手动启动 /usr/bin/safaridriver
一次以授予其所需的权限。
其次,您需要 3.x 版本的 Selenium 独立服务器,而不是 2.53.1。安装命令:
sudo webdriver-manager update --versions.standalone 3.0.1
开始:
webdriver-manager start --versions.standalone 3.0.1
第三,新驱动程序中的可见性检查被破坏了。所以 browser.wait(ExpectedConditions.visibilityOf(myElement), 5000);
之类的东西不起作用并导致 UnsupportedCommandException
。为了解决这个问题,您可以尝试安装 Safari Technology Preview and running tests there (add 'safari.options': { technologyPreview: true }
to the capabilities). But for me, the preview works even worse than the release. Protractor says it can't find Angular on the page because they changed window.name
to be cleared after a cross-origin navigation in the Release 19。如果您碰巧找到了让它工作的方法,请告诉我。
下面是一些你应该检查的链接,因为我可能遗漏了一些东西。
我在 运行 我的量角器测试 mac for safari 时出现以下错误
Failed to connect to SafariDriver after 10082 ms
Build info: version: '2.53.1', revision: 'a36b8b1',
os.arch: 'x86_64', os.version: '10.12.2', java.version: '1.8.0_101'
Driver info: driver.version: SafariDriver
能力:
name: 'Safari',
browserName: 'safari',
logName: 'Safari',
shardTestFiles: true,
maxInstances: 2
为此我们需要特定的 Safari 驱动程序吗?如果是,我可以从哪里得到它,它应该在 .conf
文件中的什么地方声明。
谢谢!
是的,您需要安装a specific safari driver in order to launch it inside of protractor. And of course, you need to be on a mac. Protractor is essentially a layer built on top of Selenium,因此您需要安装Safari 的selenium 驱动程序,它作为Safari 插件实现。
这是您需要做的:
- 从 here 下载 safari 插件。
- 运行 插件
- Select "Trust" safari 提示时的插件
驱动程序现已安装,您的量角器进程应该可以使用。
这是 Selenium 2.48 的驱动程序。我找不到更新的版本,因此如果此驱动程序版本不 运行 当前版本的量角器,您将需要使用基于 Selenium 2.48 的旧版本量角器或构建来自源的 safari 驱动程序。
首先,从 Safari 10 开始,Safari 捆绑了一个新的驱动程序实现。旧驱动程序(扩展)已弃用。您使用的是 macOS 10.12.2,所以这是您的情况。要在 Safari 中启用新驱动程序,请在 Develop 菜单中选中 Allow Remote Automation 复选框。如果您没有此菜单,请启用它:首选项 > 高级 > 在菜单栏中显示开发菜单.手动启动 /usr/bin/safaridriver
一次以授予其所需的权限。
其次,您需要 3.x 版本的 Selenium 独立服务器,而不是 2.53.1。安装命令:
sudo webdriver-manager update --versions.standalone 3.0.1
开始:
webdriver-manager start --versions.standalone 3.0.1
第三,新驱动程序中的可见性检查被破坏了。所以 browser.wait(ExpectedConditions.visibilityOf(myElement), 5000);
之类的东西不起作用并导致 UnsupportedCommandException
。为了解决这个问题,您可以尝试安装 Safari Technology Preview and running tests there (add 'safari.options': { technologyPreview: true }
to the capabilities). But for me, the preview works even worse than the release. Protractor says it can't find Angular on the page because they changed window.name
to be cleared after a cross-origin navigation in the Release 19。如果您碰巧找到了让它工作的方法,请告诉我。
下面是一些你应该检查的链接,因为我可能遗漏了一些东西。