我是CSS,HTML等的新手,因此是CSS选择器。我一直在搞弄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是属性值。任何帮助表示赞赏,谢谢。

最佳答案

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

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

07-24 21:52