Android 4.4.4
物理智能手机设备位于 USB 系绳上,ADB
已启用。
正在尝试通过 Appium
(Java) 在此设备上自动化混合 android 应用程序。
我们在协调元素发现和访问行为时遇到了麻烦。
例如:
List<WebElement> buttons = driver.findElements(By.xpath("//android.widget.Button[@text='Something']"));
System.out.println("Found " + buttons.size() + " buttons.");
for ( WebElement el : buttons ) {
System.out.println(el.getAttribute("text"));
}
发现一 (1) 个按钮。 找到的按钮显然有一个包含“Something”的“text”属性。 但是,当尝试打印“文本”属性的内容时,结果为空;只是一行返回。
此外,当 .click();
方法被调用时,“clicked”元素不是找到的元素。事实上,根据应用程序的 UI xml,点击的元素甚至不是 android.widget.Button
。
关于可能导致这种意外行为的原因有什么想法吗?
提前致谢。
最佳答案
正如您所说,您正在自动化混合应用程序,因此您必须在执行任何操作(例如 sendkeys
或单击或点击)之前切换上下文。
所以引用上下文切换教程并尝试。基本上你在原生上下文中,对于混合应用程序,context
应该更改为 webview
。
关于java - Appium xpath 属性文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25163328/