【问题标题】:Cannot Run Nightwatch Tests in Safari无法在 Safari 中运行 Nightwatch 测试
【发布时间】:2019-12-19 06:15:48
【问题描述】:

我已遵循 Nightwatch 文档中的所有说明,并遵循了 github 中的许多问题。我相信我的 nightwatch.json 中有正确的 safari 设置。当我对其进行测试时,Safari 确实会启动,但是我的测试中的所有命令都失败了。例如,我有一个全局 beforeEach 来调整浏览器窗口的大小,这在 Firefox 和 Chrome 中效果很好,但在 Safari 中失败了

The command 'POST /session/FA198F5F-EE09-4129-9FF0-F55FEA0EE6F0/window/current/size' was not found.

如果我删除它,那么我的测试的第一步(这是一个 waitForElementVisible 测试失败并出现错误

The command 'GET /session/FA198F5F-EE09-4129-9FF0-F55FEA0EE6F0/element/node-F5A12DD5-2557-4AE6-806A-0A0B99B63EFC/displayed' was not found.

再次,我确定我的配置设置正确,因为 nightwatch 正在启动 safari 浏览器,但随后在测试命令上失败。我启用了 safaridriver 并选中了“允许远程自动化”,但一切仍然失败。有人遇到过这个问题吗?

【问题讨论】:

  • 什么版本的 Safari?
  • 嘿,谢谢我正在运行版本 12
  • 我还没有让 Safari 12 与 Selenium 一起工作。 Safari 12 WebDriver 的实现现在默认支持 W3C 端点,这可能会导致问题。以前我可以使用 --legacy 参数,但它不再有效。你最好的选择是跟上最新的 Nightwatch 版本,或者研究一些我找不到的其他解决方法。我正在看这个帖子,以防你解决它。

标签: javascript webdriver automated-tests nightwatch.js nightwatch


【解决方案1】:

如果您使用 Appium 和 XCUITest 驱动程序作为您的 WebDriverAgent,那么您可以使用 browser.execute('mobile:gesture',{arguments}) 替换所有“元素交互”命令。可以找到完整的手势列表here 对于像 waitForElementVisible() 这样的命令,您可以改用断言命令(在我的例子中,我使用了assert.visible('element css selector'))。 希望他们会在 NightWatch v2 中做出改变,但目前我们只能解决这个问题

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-30
    • 1970-01-01
    • 2015-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多