我在页面上有多个具有相同xpath和相同ID /名称的元素,页面上有两个字段,具有相同的定位器我试图在所需位置输入值,代码如下
element.all(by.xpath('//*[@id="testInstanceScan"]')).get(1).sendKeys('Vkumar');
但我遇到了错误消息:
失败:索引越界。试图访问index:1处的元素,但是 只有一个元素匹配定位器By(xpath, // * [@ id =“testInstanceScan”])
如果我使用element.all('#testInstanceScan').get(1).sendKeys('Vkumar');
我遇到了错误
失败:无效的定位器Stack:TypeError:无效的定位器
尝试element.all(by.css('#testInstanceScan')).get(0).sendKeys('Vkumar');
但它不是这个价值的理想之地。
使用此第0个intdex将值输入到先前的字段中。
答案 0 :(得分:0)
如果您需要具有唯一ID的单个元素,则无需使用element.all()
,但element()
。
您的代码应为
element(by.css('#testInstanceScan')).sendKeys('Vkumar');
甚至更短:
$('#testInstanceScan').sendKeys('Vkumar');
上的API
要证明,只有一个元素可以尝试:
element.all(by.css('#testInstanceScan')).count().then(function(numberOfElems){
console.log('For this ID I found '+numberOfElems+' elements.');
})