我在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
文件中声明的位置。
谢谢!
答案 0 :(得分:4)
是的,您需要安装a specific safari driver才能在量角器内启动它。当然,你需要在Mac上。 Protractor本质上是一个构建在Selenium之上的层,因此您需要为Safari安装selenium驱动程序,它是作为Safari插件实现的。
以下是您需要做的事情:
现在安装了驱动程序,并且应该可以使用量角器进程。
这是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
以进行清除。如果您碰巧找到了让它运作的方法,请告诉我。
以下是您应该检查的一些链接,因为我可能错过了一些内容。