Espresso:如何使用文本

时间:2016-02-04 23:16:27

标签: android android-espresso

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

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

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

1 个答案:

答案 0 :(得分:2)

是的,有一种方法可以使用按钮上的文字点击网页元素。您可以尝试使用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是查找项目的较慢方法之一。