我正在使用 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/