无法连接到SafariDriver(Safari 10)

时间:2017-01-06 19:55:28

标签: safari protractor safaridriver

我在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文件中声明的位置。

谢谢!

2 个答案:

答案 0 :(得分:4)

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

以下是您需要做的事情:

  1. here
  2. 下载safari插件
  3. 运行插件
  4. 在safari提示时选择“信任”插件
  5. 现在安装了驱动程序,并且应该可以使用量角器进程。

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

答案 1 :(得分:4)

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

其次,您需要一个3.x版本的Selenium Standalone Server,而不是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 }添加到功能中)。但对我来说,预览比发布更糟糕。量角器说它无法在页面上找到Angular,因为他们在Release 19中的跨源导航后更改了window.name以进行清除。如果您碰巧找到了让它运作的方法,请告诉我。

以下是您应该检查的一些链接,因为我可能错过了一些内容。