android - Espresso : How to select element on webview using text

标签 android android-espresso

我正在使用 Espresso 编写一些 UI 测试用例。 我的应用程序包含一个 webview,我可以使用以下使用元素 ID 查找元素的代码在 webview 内的按钮上执行 webClick:

    onWebView()
            .withElement(findElement(Locator.ID, "expandbtn"))
            .perform(webClick());

假设 webview 有一个带有文本“Expand”的按钮。 是否可以使用按钮上的文本而不是定位器 ID 来执行 webClick?

最佳答案

是的,有一种方法可以使用按钮上的文本点击网络元素。您可以尝试使用 Xpath 表达式而不是 id 来查找元素:

onWebView().withElement(findElement(Locator.XPATH, xpath_expression)).perform(webClick());

而 xpath_expression 是基于您的 html 源的元素的 Xpath。

"//button[contains(text(),'Expand')]"

例如,如果按钮的文本位于子 span 元素内:

"//button[@type='%your button type%']/span[text()='Expand']/.."

但请记住,Xpath 是一种较慢的查找项目的方法。

关于android - Espresso : How to select element on webview using text,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35213556/

相关文章:

android - 有没有办法用 Espresso 测试 Chrome 自定义标签?

Android EditText 结合 InputFilter vs TextWatcher

android - 在类中处理 AsyncTask

android - Android中获取并解析网站内容

java - HttpMethod.releaseConnection() 和 EntityUtils.consume(entity) 的问题

android - 安装应用程序和 espresso 测试 apk 并在设备上运行

android - 如何在android测试中获取没有id的 View 的 subview

android - 如何使用 Espresso 测试 View 的分割?

Android - 仪表测试期间应用程序的模拟方法

android - 附加调试器有时会导致应用程序崩溃