<div class="bli-category">
<div class="row ng-scope" ng-repeat="placementtrack by $index">
<div class="col-sm-12">
<div class="col-sm-1 bli-category-checkbox">
<input class="bli-check-box ng-valid" type="checkbox" ng-click="addPlacement" ng-checked="checkedPlacementIndex" ng-model="selectedPlacement">
</div>
<div class="col-sm-8 bli-category-content">
<div class="ng-binding" ng-bind="placement.placementName">page_details</div>
</div>
</div>
</div>
我需要在class='bli-check-box ng-valid'
中为class='ng-binding'
中的文字选中复选框
当我试图获得像
//input[@class='bli-check-box ng-valid']
它选择所有4-5个复选框
答案 0 :(得分:0)
要根据checkbox
中的文字选择class='bli-check-box ng-valid'
中的class='ng-binding'
,即 page_details ,您可以使用以下xpath
:
//div[@class='bli-category']//div[@class='ng-binding' and contains(.,'page_details')]//preceding::input[@class='bli-check-box ng-valid']
注意:由于元素是
Angular
元素,因此在尝试点击之前,您必须为wait
引出element to be clickable
答案 1 :(得分:0)
//div[text='page_detials' and class='ng-binding']/../preceding-sibling::div//input[class='bli-check-box ng-valid']
上面的xpath首先找到具有您知道的自定义文本的节点。然后它遍历到它的父级,然后遍历它的前一个兄弟,在你的情况下,它包含你所需的input
节点。因此,在遍历div
之后,您选择其子节点是您所需的input
节点。