使用属性匹配为webDriver编写cssselector表达式

时间:2014-01-29 19:48:06

标签: java css selenium css-selectors

我是css,html等的新手,因此也是cssselectors。我一直在搞乱selenium webdriver,我正在尝试.click()以下按钮:

<button title="" class="btn addWidgButt bt-block" href="" role="button" type="button"     context="UNIQUE_THING">
<span class="btn-text">UNIQUE THING</span></button>

根据http://www.w3.org/TR/css3-selectors/#selectors,下列选择器不应该工作吗? (元素E的规则是E [foo =“bar”]

By.cssSelector("button title[context=UNIQUE_THING]")
By.cssSelector("btn.addWidgButt.bt-block[context=UNIQUE_THING]")
By.cssSelector("span[btn-text=UNIQUE THING]")

我认为最后一个是我最好的选择,因为span是一个元素,而btn-text是一个属性值。感谢任何帮助。谢谢。

1 个答案:

答案 0 :(得分:0)

我注意到的一件事是[]中的所有选择器都缺少单引号。

By.cssSelector("button[context='UNIQUE_THING']")
By.cssSelector(".btn.addWidgButt.bt-block[context='UNIQUE_THING']")
By.cssSelector("span.btn-text")

你的第二个选择器缺少前导。

您的上一个选择器无效,因为您无法将文本与CSS选择器匹配。您可以将带有。或id的类与#。

匹配

有关详细信息,这是一个很好的参考:http://www.w3schools.com/cssref/css_selectors.asp