【发布时间】:2017-03-01 11:30:15
【问题描述】:
我是 Selenium 的新手,所以我不确定这是否是解决问题的最佳方法,但我正在寻找一种方法来使用 xpath(或 css)来定位一系列输入元素并以某种方式遍历所有这些并在其中输入一些文本。
类似于以下内容:
<form>
value1 <input type="text" placeholder="value1"><br>
value2 <input type="text" placeholder="value2"><br>
value3 <input type="text" placeholder="value3"><br>
</form>
我可以使用这个来定位元素:
var input = driver.findElement(By.xpath("//input[@type='text']"))
我可以输入 xpath 找到的元素的第一个匹配项:
input.sendKeys('Some text')
这就是我卡住的地方。我不确定如何在第一个之后将值输入到输入字段中。
最终,我想做的是以某种方式将文本发送到 xpath 过滤器所在的所有输入字段。我在想可能有一个 for 循环,但我不确定如何使用 webdriverjs 使用的承诺管理器来做到这一点。
这是可能的还是有更好的方法来做到这一点?
【问题讨论】:
-
会有一个 findElements 方法,它是您正在使用的复数形式。这将返回一个列表,您可以对其进行迭代并输入值。单数 findelement 将始终返回它在页面中找到的第一个匹配元素。
-
谢谢,这让我更进一步。仍在尝试找出如何迭代元素。
-
@Grasshopper 谢谢,这篇文章帮助我指出了正确的方向。
标签: javascript node.js selenium xpath selenium-webdriver