我正在研究量角器来测试AngularJs应用程序。在这里,我遇到了一个场景,我想为不同的用户点击图片。但是对于所有(例如10个)用户来说,图像的id是相同的。所以我发现了另外一个元素,它是分配给每个用户的唯一号码。 2个不同用户的代码是:
USER1:
img id="searchPatientImgAdmittedM" class="img-circle picwidth" ng-click="getPatientVitalLabPharmacy(patient.patientId._id)" onclick="ShowHide(this)" src="icons/male.png" alt="" role="button" tabindex="0"
span class="clearfloat ng-binding">12339/span
USER2:
img id="searchPatientImgAdmittedM" class="img-circle picwidth" ng-click="getPatientVitalLabPharmacy(patient.patientId._id)" onclick="ShowHide(this)" src="icons/male.png" alt="" role="button" tabindex="0"
span class="clearfloat ng-binding">8841/span
编辑:
完整的HTML代码
<div class="col-md-10 col-sm-9 col-xs-9 skin-font-color paddingTop7">
<span class="skin-font-color">
<span class="name clearfloat ng-binding">KRISHA</span>
<span class="clearfloat ng-binding">12348</span>
<img id="searchPatientImgAdmittedF" class="img-circle picwidth" ng-click="getPatientVitalLabPharmacy(patient.patientId._id)" onclick="ShowHide(this)" src="icons/femaleImages.jpg" alt="" role="button" tabindex="0">
</div>
我试着这样做:
element(by.id('searchPatientImgAdmittedF')).all(by.tagName('12348')).click();
// or
element(by.id('searchPatientImgAdmittedF')).element(by.tagName('12348')).click();
如何组合定位器以点击此用户。只有图像部分可以点击。
答案 0 :(得分:0)
感谢你的四个补充。
现在你正试图点击姐妹元素。有几种方法可以做到这一点。
我通常使用的是:
element(by.cssContainingText('span.clearfloat','12348')).element(by.xpath('..')).$('#searchPatientImgAdmittedF').click();
//equal to
element(by.cssContainingText('span.clearfloat','12348')).element(by.xpath('..')).element(by.id('searchPatientImgAdmittedF')).click();
首先评估具有唯一编号的可识别标签,然后爬到其父元素,然后从那里获取带有ID的img元素。
另一种选择是使用isElementPresent()
来评估子元素的存在。但是,代码(从我的角度来看)更复杂,我没有看到,cssContainingText()
如何在那里使用,所以我不试图在这里做。
答案 1 :(得分:0)
感谢您快速帮助解决我的问题。我想在此添加,我找到了问题的答案,现在我可以从许多用户列表中单击我想要的特定用户。我正在使用的代码是:
element(by.cssContainingText('span.clearfloat','12339'))
.element(by.xpath('/html/body/div[3]/div[1]/div[17]/div/div/table[4]/tbody/tr[3]/td[1]/div[1]/img'))
.click();
这是首先找到子元素,然后是父元素。所有用户的id都是相同的,所以它没有使用它,所以我只使用了xpath和唯一的数字。
再次感谢您的帮助。