javascript - css 选择器在浏览器中有效,但在 Selenium 中无效

标签 javascript jquery css selenium css-selectors

我正在使用 Selenium 进行测试自动化,通常使用 css 选择器来定位元素。然而最近,我遇到了一个奇怪的问题。我注意到,在某些情况下,当我在浏览器控制台中测试时,CSS 选择器工作正常。例如,要从众多按钮中选择一个特定按钮,我会这样做:

(1) $("div.v-app[id^='v-discussions'] .v-button-caption:contains('Add')")

但是当我实际在 Selenium 中使用时它会返回一个错误:

Caused by: org.openqa.selenium.InvalidSelectorException: The given selector div.v-app[id^='v-discussions'] .v-button-caption:contains('Add') is either invalid or does not result in a WebElement. The following error occurred:
InvalidSelectorError: An invalid or illegal selector was specified

我还使用 querySelector 尝试了该字符串,但收到“非法字符串”错误:

(2) document.querySelectorAll("div.v-app[id^='v-discussions'] .v-button-caption:contains('Add')")

为什么会发生这种情况?

附注

这是每个元素的样子:

<span class="v-button-caption">Add Comment</span>

最佳答案

那就去吧:

WebElement element = driver.findElement(By.className("v-button-caption"));

我在 Selenium Webdriver 中使用它并且对我来说工作得很好

关于javascript - css 选择器在浏览器中有效,但在 Selenium 中无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32085650/

相关文章:

jquery - 这个 jQuery SlideToggle 函数有什么问题?

javascript - JS如何以编程方式创建断点

php - 将数据保存到Mysql后在PHP中使用AJAX显示DIV

javascript - 如何使用链接 attr 值作为变量在 d3.json() 方法中加载 json?

javascript - 如何对同一个元素点击事件进行排序?

html - Bootstrap : how to truly center an image in a column?

javascript - 我想使用 pdflayer 将原始 html 转换为 pdf

javascript - 带有偏移量的 Canvas createPattern() 和 fill()

html - 在 mozilla 中显示嵌入式推文的突发问题

javascript - 不透明度不应用 JavaScript Canvas