在单击某些元素之前的测试步骤之一中,我使用硒
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