【发布时间】:2020-06-25 22:42:11
【问题描述】:
Selenium WebDriver 在尝试使用 CSS 选择器单击下一个同级元素时抛出 InvalidSelectorException。
考虑我的 DOM 看起来像这样:
<div class="checkbox-group">
<div>
<span class="checkbox">::after</span> <!--click on this span makes the checkbox checked-->
<span class="checkbox-name">Male</span> <!--click on this span doesn't make the checkbox checked-->
</div>
<div>
<span class="checkbox">::after</span>
<span class="checkbox-name">Female</span>
</div>
</div>
而我的 Java 代码是:
@FindAll(@FindBy(css=".checkbox-name"))
List<WebElement> checkboxes;
public void selectCheckbox(String value){
for(WebElement checkbox : checkboxes){
String text = checkbox.getText();
if(text.equalsIgnoreCase(value)){
WebElement control = checkbox.findElement(By.cssSelector("+.checkbox"));//Exception thrown here
control.click();
}
}
}
异常抛出:
org.openqa.selenium.InvalidSelectorException: invalid selector: An invalid or illegal selector was specified.
** Element info: {Using=css selector, value=+.checkbox}
【问题讨论】:
-
抱歉,错字。我已经更新了错误堆栈跟踪。我的问题仍然有效,请您现在看一下。
标签: css selenium selenium-webdriver css-selectors automated-tests