Javascript 我必须在页面中输入text in元素,但是页面有四个具有相同属性的元素
我必须在页面中输入text in元素,但是页面有四个具有相同属性的元素,我找不到唯一的定位器,使用量角器角度js网页?有人能帮忙吗 以下是webelements:Javascript 我必须在页面中输入text in元素,但是页面有四个具有相同属性的元素,javascript,angularjs,selenium,protractor,Javascript,Angularjs,Selenium,Protractor,我必须在页面中输入text in元素,但是页面有四个具有相同属性的元素,我找不到唯一的定位器,使用量角器角度js网页?有人能帮忙吗 以下是webelements: <input type="text" ng-model="size.quantity" class="isd-txt-btn ng-pristine ng-valid" ng-change="quantityChanged(size)" ng-disabled="readOnly"> 如果有多个元素可以与选择器匹配,请尝
<input type="text" ng-model="size.quantity" class="isd-txt-btn ng-pristine ng-valid" ng-change="quantityChanged(size)" ng-disabled="readOnly">
如果有多个元素可以与选择器匹配,请尝试按其索引进行匹配:
element.all(by.css('input[type="text"]')).get(2).sendKeys('someText');
设置目标input
到get()
的适当索引(从0
开始),您可以使用element.all(locator).get(index)方法将数据输入必填字段。确定目标输入字段索引(0或1或2或3)
代码:
element.all(locator).get(index).sendKeys("Test Data");
如果我理解正确,为什么不在输入标记中添加
id=“textFieldId”
,然后在Javascript中调用document.getElementById('textFieldId').value=“Something”
。首选方法不是id,因为id需要唯一,而且很容易意外复制它们。在您的上下文中,这可能并不重要,但作为一个选项,您可以使用空CSS类标记元素并选择(因此,是的,您将使用四个空CSS类)。我明白这似乎是一个黑客(我真的不喜欢),但信不信由你,这是推荐的方法,而不是IDs。另一种方法是对“input”的directive元素进行“find”,它会将所有输入元素作为dict返回给您。然后您可以通过索引进行选择。不太好,但它可以工作,让你远离ID。嗯……或者只是在4个文本字段上添加一个唯一的ID……如果页面上有4个完全相同的元素,你可以尝试使用索引。没有必要添加黑客式的“空CSS类”。如果从不移动或添加新元素,索引将起作用。只需添加一个唯一的ID。