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

时间:2018-05-03 21:27:49

标签: selenium dom selenium-webdriver xpath css-selectors

我正在使用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')

我得到了异常:未捕获的DOMException:

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

我认为根据其id值定位它会非常简单。你能告诉我这里可能出现什么问题吗?

1 个答案:

答案 0 :(得分:1)

此错误消息......

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

...意味着您调整的Locator Strategy 不是有效选择器

根据 HTML ,您已共享所需元素的是<input>标记,其type属性为 checkbox ,并且使用id属性来转义.个字符,您可以使用以下任一选项:

  • cssSelector

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

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