我是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