Selenium和Java:选择器无效或非法

Selenium和Java:选择器无效或非法,java,selenium,Java,Selenium,不是我瞎了,就是出了什么事。当我试图访问一个WebElement时,我总是得到“无效或非法的选择器”,就像我已经做了一千次一样 标记: <label translate="" class="hb-label-tekst" for="0-erBarnetrygdRiktig-ja">Ja</label> 错误消息: org.openqa.selenium.InvalidSelectorException: inv

不是我瞎了,就是出了什么事。当我试图访问一个WebElement时,我总是得到“无效或非法的选择器”,就像我已经做了一千次一样

标记:

<label translate="" class="hb-label-tekst" for="0-erBarnetrygdRiktig-ja">Ja</label>
错误消息:

org.openqa.selenium.InvalidSelectorException: invalid selector: An invalid or illegal selector was specified

当我把括号放在错误的地方时,通常会出现这种错误,但这似乎是正确的。有人能发现错误吗?

我想问题在于css选择器,我的意思是for标记不是要使用的css属性。相反,您可以尝试在这种情况下使用xpath,如下所示:

@FindBy(xpath = "//label[@for = '0-erBarnetrygdRiktig-ja']")
WebElement erBarnetrygdRiktigJa0;

你有没有试过
@FindBy(css=“[for='0-erBarnetrygdRiktig-ja']”)
(用单引号)?嘿。这确实奏效了。奇怪。我以前从来没有这样做过。是的,这是一个要点。然而,当它大部分时间都能工作,但突然不工作时,它真的很烦人。我真的,真的不喜欢依赖xpath来查找元素。是的,这是selenium的缺点之一,在某些元素中的更改会使代码失败。关于xpath,请尝试使用相对xpath,它们在大多数情况下都会很有用。
@FindBy(xpath = "//label[@for = '0-erBarnetrygdRiktig-ja']")
WebElement erBarnetrygdRiktigJa0;