java - isDisplayed() 的替代方案,因为它在 safari 12 中/从 safari 12 中不可用
问题描述
在单击某些元素之前的测试步骤之一中,我使用硒
ExpectedConditions.elementToBeClickable(element)
此方法通过验证元素是否显示来检查可见性
element.isDisplayed()
测试在 browserstack 上运行。
请注意,结合 OS X High Sierra + Safari 11 可以通过此步骤。但是在找到元素并发送请求
/session/:sessionId/element/:id/displayed 后使用 Mojave + Safari 12 我在 selenium 日志响应“未知命令”中看到:
{"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(),我们建议您将 atom 复制到您的存储库中并通过 Execute Script 命令运行它。这就是后来版本的 Selenium 库已经开始做的事情,因为驱动程序不再需要提供它。
澄清:在我的测试中使用硒 2.52
解决方案
推荐阅读
- azure - MSAL idToken 没有 upn、配置文件或电子邮件数据?在 idToken 中需要它来进行护照天蓝色广告授权
- mysql - 查询以将行值汇总为特定的最大值
- html - PHP:字符集问题
- rest - 在 ionic serve 上工作的 Http 请求,但在“ionic cordova run android --device”上不起作用
- android - 在 Android 中对 Log-function 的所有调用中混淆或删除字符串文字
- python - 在numpy中将带坐标的一维数组转换为二维数组
- opengl - 加载和使用 Alpha 通道位图
- java - java.lang.NoClassDefFoundError:解析失败:Lcom/google/firebase/FirebaseApp$IdTokenListener;
- keras - 用于 2d 图像旋转估计的 CNN(角度回归)
- angular - 并行运行 Angular i18 构建