Safari可用的isDisplayed()的替代方法,因为它在Safari 12中不可用

时间:2018-12-26 11:17:42

标签: java selenium macos-mojave browserstack safaridriver

在单击某些元素之前的测试步骤之一中,我使用硒

ExpectedConditions.elementToBeClickable(element)

此方法通过验证元素是否显示来检查可见性

element.isDisplayed()

测试在浏览器堆栈上运行。

请注意,使用OS X High Sierra + Safari 11组合时,此步骤通过。 但是使用Mojave + Safari 12之后,找到元素并请求
/ session /:sessionId / element /:id / displayed已发送,我在硒日志响应中看到“未知命令”:

{"value":{"error":"unknown command","message":"The command 'GET \/session\/CD43B950-D8D6-49A4-A0FF-3F459F1F6D86\/element\/node-E721541C-713B-4607-8041-C79138E08704\/displayed' was not found.","stacktrace":""}}

在这里我看到这样的请求(“显示”)丢失了: https://developer.apple.com/documentation/webkit/macos_webdriver_commands_for_safari_12_and_later?language=objc

因此,问题是:Safari 12是否可以使用element.isDisplayed()?我想念什么吗?如果不可能,请分享可能的解决方法。谢谢

更新。来自苹果公司的支持:

  

请注意,我们的工程团队已确定此问题   根据提供的信息,其行为符合预期。

     

如果您需要element.isDisplayed(),建议您复制原子   进入您的存储库,然后通过“执行脚本”命令运行它。这是   Selenium库的更高版本已经开始做什么,因为   驾驶员不必再运送它了。

澄清:在我的测试中,使用硒2.52

0 个答案:

没有答案