6

在 mac 上为 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文件中的哪里声明它。

谢谢!

4

2 回答 2

4

是的,您需要安装特定的 safari 驱动程序才能在量角器内启动它。当然,你需要在 Mac 上。Protractor 本质上是建立在Selenium之上的一个层,因此您需要为 Safari 安装 selenium 驱动程序,该驱动程序是作为 Safari 插件实现的。

这是您需要做的:

  1. 从这里下载 safari 插件。
  2. 运行插件
  3. Safari 提示时选择“信任”插件

驱动程序现在已安装,并且应该可用于您的量角器进程。

这是 Selenium 2.48 的驱动程序。我找不到更新的版本,因此如果此驱动程序版本不能与当前版本的 Protractor 一起运行,您将需要使用基于 Selenium 2.48 的旧版本量角器或从源代码构建 safari 驱动程序.

于 2017-01-09T22:07:42.070 回答
4

首先,从 Safari 10 开始,Safari 捆绑了一个新的驱动程序实现。旧驱动程序(扩展)已被弃用。您使用的是 macOS 10.12.2,所以这是您的情况。要在 Safari 中启用新驱动程序,请切换“开发”菜单中的“允许远程自动化”复选框。如果您没有此菜单,请启用它:Preferences > Advanced > Show Develop menu in menu bar。手动启动一次以授予它所需的权限。/usr/bin/safaridriver

其次,您需要 Selenium Standalone Server 的 3.x 版本,而不是 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并在那里运行测试(添加'safari.options': { technologyPreview: true }到功能中)。但对我来说,预览版的效果比发布版还要糟糕。Protractor 说它在页面上找不到 Angular,因为它们在Release 19window.name中跨域导航后被清除。如果你碰巧找到了让它工作的方法,请告诉我。

下面是一些你应该检查的链接,因为我可能错过了一些东西。

于 2017-01-23T16:12:07.230 回答