Css选择器还是Xpath方法?

时间:2014-04-29 12:58:11

标签: html css xpath

我尝试使用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属性是动态的,因此我无法将其用作参考。

有人可以帮助建议这种情况下最好的方法吗?

非常感谢。

3 个答案:

答案 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 */ ... }