我们正在使用by.id来引用元素,但是量角器仍在抛出此消息“为定位器By(css选择器,* [id =“ txt1”])找到多个元素,并且它返回的值使用getText()时的标签。该行为似乎很奇怪。当我们从Javascript引用该元素时,引用似乎很好。感谢您在解决此问题方面的帮助。
//Code in Protractor, it seems to be referring to a label
var txtEl=element(by.id('txt1'));
//Code in VueJS, where the ID is set to each InputText
//This is the label
<label class="form__label" v-model="form.label" v-show="form.hasOwnProperty('label')">
{{ index }}. {{ form.label }}
</label>
<el-input type="text"
:id="currentField.id"
:placeholder="currentField.isPlaceholderVisible ? currentField.placeholder : ''"
v-model="currentField.value">
</el-input>
//Code in Javascript, works fine, shows the right value
console.log("Value:" + this.$refs.form1["txt1"].value);
答案 0 :(得分:0)
此时尝试打印源代码,您将清除DOM中具有相似ID的元素
答案 1 :(得分:0)
尝试这个
element(by.css('input[type = "text"]'))
答案 2 :(得分:0)
经过令人沮丧的10个小时的挖掘,终于找到了答案。
在量角器代码中,使用名称来提取元素。像这样 - var inputtxt = element(by.css(“ input [name ='txt1']”)));
不要使用getText(),它的行为很奇怪,返回空。使用inputtxt.getAttribute('value')),其中“ value”是分配给“ v-model”的基础字段