以另一种方式检查'checkBox' - > xPath

p__*_*__d 2 selenium xpath selenium-webdriver

我正在使用此代码:

//input[@type='checkbox'][following-sibling::text()[position()=1]][2]
Run Code Online (Sandbox Code Playgroud)

检查框,但我想使用字符串,而不是数字(例如:'Uczyńodpowiedzialnym'而不是[2]).我试过这个,但它不起作用:

//input[@type='checkbox'][following-sibling::text()[position()=1][contains(., 'Uczy? odpowiedzialnym')]]
Run Code Online (Sandbox Code Playgroud)

HTML代码:

<input class="prettifiedIeCheckbox ng-pristine ng-valid" type="checkbox" ng-model="holdersModel.OnlyForRead"></input>
<label>
    <span class="bottom">
    Tylko do wgl?du
    </span>
</label>
<input class="prettifiedIeCheckbox ng-pristine ng-valid" type="checkbox" ng-model="holdersModel.ChangeMainHolder"></input>
<label>
    <span class="bottom">
    Uczy? odpowiedzialnym
    </span>
</label>
Run Code Online (Sandbox Code Playgroud)

@sideshowbarker帮助;)

ale*_*cxe 5

您需要检查span以下label兄弟节点中的元素文本:

//input[@type='checkbox' and following-sibling::label/span = 'Uczy? odpowiedzialnym']
Run Code Online (Sandbox Code Playgroud)

当然,还有其他方法来定位元素.例如,检查ng-model:

//input[contains(@ng-model, 'ChangeMainHolder')]
Run Code Online (Sandbox Code Playgroud)