未捕获的 DOMException:无法在“CommandLineAPI”上执行“$”:不是有效的选择器

问题描述 投票:0回答:2

我正在使用 selenium 为我的网页编写自动化 UI 测试。 我正在测试网页上的一个元素:

<&lt input type="checkbox" id="screening_questions[0].multiple_choice[0]-dealbreakerField" value="on" style="position: absolute; cursor: inherit; pointer-events: all; opacity: 0; width: 100%; height: 100%; z-index: 2; left: 0px; box-sizing: border-box; padding: 0px; margin: 0px;>

由于该元素有 id 属性,所以我尝试使用它的 id 值来定位它,但没有成功。

如果我在 Chrome 控制台中搜索该元素:

$('#screening_questions[0].multiple_choice[0]-dealbreakerField')

我得到异常:Uncaught DOMException:

Failed to execute '$' on 'CommandLineAPI': '#screening_questions[0].multiple_choice[0]-dealbreakerField' is not a valid selector.

我认为根据其 id 值可以非常直接地找到它。您能建议一下这里可能出了什么问题吗?

selenium dom selenium-webdriver xpath css-selectors
2个回答
1
投票

这个错误信息...

Failed to execute '$' on 'CommandLineAPI': '#screening_questions[0].multiple_choice[0]-dealbreakerField' is not a valid selector.

...意味着您所采用的定位器策略不是有效的选择器

根据HTML,您共享所需的元素是一个

<input>
标签,其
type
属性为
checkbox
,要使用
id
属性,您必须转义
.
字符,您可以使用以下任一选项:

  • css选择器

    "input[id=\"screening_questions[0].multiple_choice[0]-dealbreakerField\"][type='checkbox']"
    
  • xpath

    "//input[@id=\"screening_questions[0].multiple_choice[0]-dealbreakerField\"][@type='checkbox']"
    

0
投票

如果我在 Chrome 控制台中搜索该元素:

$('#screening_questions[0].multiple_choice[0]-dealbreakerField')

Chrome浏览器控制台中的XPath选择方法为:

$x('xpathValue')

可以在此处找到 XPath 选择控制台功能的更详细说明:https://stackoverflow.com/a/22571294/512463

© www.soinside.com 2019 - 2024. All rights reserved.