【问题标题】:Selenium and Java: invalid or illegal selectorSelenium 和 Java:无效或非法的选择器
【发布时间】:2020-10-22 11:49:09
【问题描述】:

要么我是盲人,要么有其他问题。尝试以与我做过一千次相同的方式访问 WebElement 时,我不断收到“无效或非法的选择器”。

标记:

<label translate="" class="hb-label-tekst" for="0-erBarnetrygdRiktig-ja">Ja</label>

Java/selenium 代码:​​

@FindBy(css = "[for=0-erBarnetrygdRiktig-ja]")
WebElement erBarnetrygdRiktigJa0;

错误信息:

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

当我把括号放在错误的位置时,我通常会收到这个错误,但这似乎是正确的。有人能发现错误吗?

【问题讨论】:

  • 你试过@FindBy(css = "[for='0-erBarnetrygdRiktig-ja']")(单引号)吗?
  • 嘿。那确实奏效了。奇怪的。我以前从来没有这样做过。

标签: java selenium


【解决方案1】:

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

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

【讨论】:

  • 是的,这很重要。但是,当它大部分时间都可以工作时,它真的很烦人,然后突然就不行了。而且我真的非常不喜欢依赖 xpath 来查找元素。
  • 是的,这是硒更改某些元素的缺点之一,这会使您的代码失败。关于 xpath,请尝试使用相对 xpath,它们在大多数情况下都会有所帮助。
猜你喜欢
  • 1970-01-01
  • 2020-11-11
  • 1970-01-01
  • 2023-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-17
  • 1970-01-01
相关资源
最近更新 更多