我正在测试一个混合应用程序,其中每个视图都有一个网络视图。
在其中一个 Web 视图中,我有一个具有相同属性的元素列表。它们具有相同的 xpath 定位器,如下所示:
//h4[contains(@data-role, 'product-name')]
我想创建这些元素的列表并迭代它们,对它们进行计数,获取它们的属性。
在文档中,我发现了两种类似的方法:
findElement(locator, value)
and
findMultipleElements(locator, value)
尽管我完全不清楚如何使用它。我试图找到这方面的例子,但没有成功。
有人可以帮我解决这个问题吗?
这是我找到的解决方案。
@kaqqao 是对的findMultipleItems
来电返回Atom<List<ElementReference>>
不能用于onWebView()
因为那里你只有withElement()
接受任一Atom<ElementReference>
要不就ElementReference
不过,您可以做的是执行查找多个项目的操作,并从 Atom 中获取结果。如果您检查其来源,这就是它的内部工作原理doEval
Web.java 中用于浓缩咖啡的方法。
val elements = with(AtomAction(findMultipleElements(
Locator.XPATH,
"YOUR_COMPLEX_XPATH"
), null, null)) {
onView(ViewMatchers.isAssignableFrom(WebView::class.java)).perform(this)
this.get()
}
这段代码会给你List<ElementMatcher>
.
然后运行它
elements.forEach {
onWebView().forceJavascriptEnabled().withElement(it).perform(webClick())
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)