我需要选中三个单选按钮之一。我试过这段代码:
//input[@type='radio']/following-sibling::*[contains(., 'Inne akcje')]
但我认为这是错误的方式。
<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>
最佳答案
以下 XPath 表达式将只获取您想要的 input
元素:
//input[@type='radio'][following-sibling::text()[position()=1][contains(., 'Inne akcje')]]
返回这个元素:
<input type="radio" ng-model="holdersModel.OperationType" value="O"
class="prettifiedIeCheckbox ng-valid ng-dirty" name="01J" />
与原始 XPath 表达式的主要区别是:
不要使用语法input[@type='radio']/following-sibling…
;而是使用 //input[@type='radio'][following-sibling…
。
不要使用following-sibling::*
;而是使用 following-sibling::text()
(因为在此上下文中 *
表示“任何 element”;所以如果您想要该文本节点相反,您必须使用 text()
来明确指出)
请在 following-sibling::*[position()=1]
中使用 [position()=1]
来表明您想要 first 跟随 sibling 。
关于selenium - 如何 'click' 单选按钮 -> 需要 xPath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32355196/