【发布时间】:2019-08-24 22:02:45
【问题描述】:
我正在使用 Appium 为混合 Android 应用编写自动化测试用例。 我正在使用下面的代码行将光标设置在下拉/弹出窗口上:
Set<String> stringSet = webDriver.getWindowHandles();
但是,这会产生以下错误:
org.openqa.selenium.UnsupportedCommandException: Method has not yet been implemented.
webdriver 是 AppiumDriver 的对象。
这是一个混合(Cordova) 移动应用。
我的堆栈跟踪:
Apr 03, 2019 4:20:21 PM org.openqa.selenium.remote.ErrorCodes toStatus
INFO: HTTP Status: '404' -> incorrect JSON status mapping for 'unknown method' (405 expected)
org.openqa.selenium.UnsupportedCommandException: Method has not yet been implemented
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:17:03'
System info: host: 'VIKSHAH-M-F1AR', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.14.3', java.version: '1.8.0_152-release'
Driver info: io.appium.java_client.AppiumDriver
更新: 更新 JDK 后
Apr 10, 2019 12:47:45 PM org.openqa.selenium.remote.ErrorCodes toStatus
INFO: HTTP Status: '404' -> incorrect JSON status mapping for 'unknown method' (405 expected)
org.openqa.selenium.UnsupportedCommandException: Method has not yet been implemented
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:17:03'
System info: host: 'VIKSHAH2-M-F1AR', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.14.3', java.version: '1.8.0_202'
Driver info: io.appium.java_client.android.AndroidDriver
有没有人遇到过类似的问题? 有没有其他方法可以使用 Appium 测试下拉菜单?
【问题讨论】:
-
getWindowHandles() 通常用于传统的网络浏览器。我想不出任何理由将它与 Appium 驱动程序一起使用。也许您的意思是使用 getContextHandles()?
-
原始发帖人对他自己的问题没有反应,但这个问题却成功地登上了 Stack Overflow 时事通讯。如果可以,我会再次投反对票。
-
@BillHileman 我正在开发一个混合应用程序,所以基本上,整个应用程序都呈现在 Web 视图上。而且我找不到弹出窗口的元素,所以现在你能解释一下 getContextHandles() 将如何工作而不是 getWindowHandles () ???
-
我将发布一个我自己的代码示例,该示例将切换到第一个可用的 Web 上下文作为建议的答案。
标签: java selenium appium hybrid-mobile-app appium-android