我正在使用selenium为我的网页编写自动化UI测试。 我在网页上有一个元素,我正在测试:
<< 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值定位它会非常简单。你能告诉我这里可能出现什么问题吗?
答案 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']"