【问题标题】:Failed to connect to SafariDriver (Safari 10)无法连接到 SafariDriver (Safari 10)
【发布时间】:2017-01-06 19:55:27
【问题描述】:

在 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 文件中声明它。

谢谢!

【问题讨论】:

    标签: safari protractor safaridriver


    【解决方案1】:

    是的,您需要安装a specific safari driver 才能在量角器内启动它。当然,你需要在 Mac 上。 Protractor本质上是建立在Selenium之上的一层,所以需要安装Safari的selenium驱动,它是作为Safari插件实现的。

    这是你需要做的:

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

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

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

    【讨论】:

    【解决方案2】:

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

    其次,您需要 Selenium 独立服务器的 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,因为他们将 window.name 更改为在 Release 19 中进行跨域导航后被清除。如果你碰巧找到了让它工作的方法,请告诉我。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-27
      • 2023-02-07
      • 2012-04-11
      • 2017-09-14
      相关资源
      最近更新 更多