我正在使用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')")
为什么会这样?
P.S。
这就是每个元素的样子:
<span class="v-button-caption">Add Comment</span>
答案 0 :(得分:0)
好的去:
WebElement element = driver.findElement(By.className("v-button-caption"));
我在Selenium Webdriver中使用它,对我来说很好用