当预期值不是文本类型时,如何使用 scriptAll 获取所有值

How to use scriptAll to grab all values when the intended value is not text type

我有一个包含多个文本框和下拉菜单的页面,其中包含我正在尝试验证的值。它们中的值在每个 运行.

中都是动态的

HTML 看起来像:

<input readonly="readonly" class="form-control valid" data-val="true" data="ABC"  aria-invalid="false" xpath="1">

我想要做的是获取每个文本框的“数据”值。在使用 innerText 抓取文本的情况下,我之前使用过 scriptAll。但是,这不适用于上面 HTML 中的常规值。

我确实尝试了一种有效的解决方案:

driver.value(//input[@data])

但是,这只是获取第一个文本框值,有没有办法将 scriptAll 与 driver.value 结合使用?或者我在这里做一些 JS 会更好吗?

提前致谢!

是的,请参阅 scriptAll() 的文档:https://github.com/karatelabs/karate/tree/master/karate-core#scriptall

使用任何 JS 工作来获取属性值。没试过,但这应该行得通,你明白了:

* def list = scriptAll('input', "_.getAttribute('data')")