2016-06-23 3 views
0
<h3 class="ui-accordion-header ui-helper-reset ui-state-default ui-accordion-header-active ui-corner-top ng-binding ng-scope ui-state-active" ng-click="updateActiveTab($index)" role="tab" ng-class="{'ui-state-active': tabs.active == $index}" ng-if="isUserPermitted($index) && feature.visible" ng-repeat-start="feature in model.features"> 
<input class="ng-pristine ng-untouched ng-valid" type="checkbox" ng-click="$event.stopPropagation()" style="vertical-align: middle;" ng-change="validateAndUpdateModel($index)" ng-model="ui.featuresEnabled[$index]"/> 
AUS - Demand Response Modes (DRM)           
<!-- nasty hack to fix line break for validation error messages --> 
<!-- ngIf: tabs.active != $index && (feature.label|translate).length >17 --> 
<!-- ngIf: tabs.active == $index && (feature.label|translate).length >17 --> 
<span class="glyphicon glyphicon-collapse-up ng-scope" style="float: right; vertical-align: middle; margin-right: 4px" ng-if="tabs.active == $index && (feature.label|translate).length >17"/> 
<!-- end ngIf: tabs.active == $index && (feature.label|translate).length >17 --> 
<!-- ngIf: (feature.label|translate).length >17 --> 
<br class="ng-scope" ng-if="(feature.label|translate).length >17"/> 
<!-- end ngIf: (feature.label|translate).length >17 --> 
<!-- ngIf: showFeatureValidation(feature) --> 
<!-- ngIf: !showFeatureValidation(feature) && showDoubleUsageValidation(feature) --> 
<!-- ngIf: tabs.active != $index && (feature.label|translate).length <=17 --> 
<!-- ngIf: tabs.active == $index&& (feature.label|translate).length <= 17 --> 
</h3> 

Это HTML, где мне нужен мой XPath. Он содержит флажок и ярлык CheckBox (AUS - режимы ответа на запросы (DRM)), во всем HTML есть несколько тегов, поэтому мне нужен способ убедиться, что флажок, который я выбираю, содержит правильную метку - как в этом примере Требование ...Помощь в XPath - выбор флажка

что я пытался до сих пор:

//*[@role='tab' and contains(text(),'Demand')]//*[@type='checkbox'] 

И некоторые другие версии, которые в основном выглядит одинаково, но я не могу заставить его работать должным образом, либо показывает мне все галочки, но не связанных с меткой в ​​теге h3, или вообще ничего.

ответ

1

Вы можете использовать XPath:

//*[@role='tab']//*[@type='checkbox' and contains(./following-sibling::node()[1]/self::text(), 'Demand')] 

и вернет входной флажок (который является потомком элемента с атрибутом role="tab"), который сразу же следует текстовый узел, который содержит слово Demand ,

+0

Thx, работает идеально - даже с другими узлами –