webdriver - cssSelector 中 contains 的替代方法? Selenium 网络驱动程序

标签 webdriver css-selectors selenium-webdriver

我正在使用 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/

相关文章:

WebDriver:添加新元素

java - 如何根据 HTML 展开下拉列表后单击复选框

selenium - TestNG & Selenium : Separate tests into "groups", 在每个组内按顺序运行

css - 将 CSS 转换为 LESS 选择器

ruby - Select#select 的行为不像在选择列表中手动选择选项

javascript - selectorgadget 是如何工作的?

Selenium - 如何在 WebDriver 中通过 href 值单击链接

c# - 如何快速检查警报是否存在?

python - Selenium 无法从workera.ai 中找到元素

java - 处理 Selenium 中弹出的窗口