p__*_*__d 1 selenium xpath selenium-webdriver
我需要检查三个单选按钮之一。我试过这个代码:
//input[@type='radio']/following-sibling::*[contains(., 'Inne akcje')]
Run Code Online (Sandbox Code Playgroud)
但我认为这是错误的方式。
<label class="HoldersInLineLabel">Rodzaj akcji</label>
<input type="radio" ng-model="holdersModel.OperationType" class="prettifiedIeCheckbox ng-valid ng-dirty" value="P" name="01H">
"Przekazanie"
<input type="radio" ng-model="holdersModel.OperationType" value="D" class="prettifiedIeCheckbox ng-valid ng-dirty" name="01I">
"Dekretacja"
<input type="radio" ng-model="holdersModel.OperationType" value="O" class="prettifiedIeCheckbox ng-valid ng-dirty" name="01J">
"Inne akcje"
<span class="k-widget k-dropdown k-header ng-pristine ng-valid" unselectable="on" role="listbox" aria-haspopup="true" aria-expanded="false"...></span>
Run Code Online (Sandbox Code Playgroud)
以下 XPath 表达式将仅获取input您想要的元素:
//input[@type='radio'][following-sibling::text()[position()=1][contains(., 'Inne akcje')]]
Run Code Online (Sandbox Code Playgroud)
返回这个元素:
<input type="radio" ng-model="holdersModel.OperationType" value="O"
class="prettifiedIeCheckbox ng-valid ng-dirty" name="01J" />
Run Code Online (Sandbox Code Playgroud)
与原始 XPath 表达式的主要区别是:
不要使用语法input[@type='radio']/following-sibling…;而是使用//input[@type='radio'][following-sibling….
不要使用following-sibling::*; 改为使用following-sibling::text()(因为在此上下文中*表示“任何元素”;因此,如果您想要该文本节点,则必须通过使用来明确指示它text())
使用[position()=1]infollowing-sibling::*[position()=1]表示您想要第一个跟随兄弟。
| 归档时间: |
|
| 查看次数: |
17088 次 |
| 最近记录: |