我正在使用 Selenium 2(WebDriver)。
我正在找到一个按钮并通过脚本单击:
driver.findElement(By.cssSelector("button:contains('Run Query')"));
或者
driver.findElement(By.cssSelector("css=.gwt-Button:contains('Run Query')"))
其 html 类似于:
<button type="button" class="gwt-Button" id="ext-gen362">Run Query</
button>
由于 id 是动态生成的,因此我无法使用该 ID。
有没有办法将 cssSelector 与 contains 之类的东西一起使用?这可能吗?
最佳答案
你不能用 CSS 选择器来做到这一点,因为没有 :contains()
这样的东西。在 CSS 中。这是一个多年前被放弃的提议。
如果要按元素文本进行选择,则必须使用 XPath 选择器。就像是
driver.findelement(By.xpath("//button[contains(., 'Run Query']"))
或者
driver.findelement(By.xpath("//[contains(concat(' ', @class, ' '), ' .gwt-Button ') and contains(., 'Run Query']"))
关于webdriver - cssSelector 中 contains 的替代方法? Selenium 网络驱动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14595149/