我尝试使用WebDriver为以下HTML块编写自动测试的css选择器,以便我可以选择一个单选按钮。
<span data-id="c1cf48c1-fbe3-44ea-ac5c-dfe588f0ed18" class="folder">
<input id="Folders" name="Folders" type="radio" value="c1cf48c1-fbe3-44ea-ac5c-dfe588f0ed18"> Contract Folder
</span>
我尝试编写xpath表达式//*[contains(.,"Contract")]
无效,因为返回的元素太多,当我尝试//*[contains(.,"Contract Folder")]
时,没有返回任何内容。因此我尝试使用css,我更喜欢使用它。 value属性是动态的,因此我无法将其用作参考。
有人可以帮助建议这种情况下最好的方法吗?
非常感谢。
答案 0 :(得分:2)
为什么不通过input
属性获取id
?
//input[@id="Folders"]
答案 1 :(得分:2)
由于元素ID在OP的用例中不是唯一的(请参阅@ alecxe的答案的注释),您可以根据span
中的文本内容使用XPath解决方案:
.//span[@class="folder"][normalize-space(.)="Contract Folder"]/input[@type="radio"]
答案 2 :(得分:0)
也许这是为了轻松思考,但是你不能把所有的输入都放在同一个班级。
<input class="radioButton" ... />
input.radioButton { ... /* style */ ... }