java - Appium xpath 属性文本

标签 java android xpath appium

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/

相关文章:

ruby-on-rails - 如何使用 Nokogiri 和 XPath 或 CSS 选择器选择一大块 HTML?

c# - 如何使用Xpath获取嵌套div?

java - 比较器比较类型推断

Java ArrayList 添加具有相同 Id 的值

java - 实时网络跟踪应用程序

android - Google 插件不适用于 App Engine 项目 - Eclipse Indigo - WindowsXP

java - Eclipse 终止快照

javascript - 用户点击WebView Android时如何打开一个新链接

java - 检测 ViewGroup 及其所有 subview 上的 SwipeGesture

ios - hpple xpath 问题