我正在使用 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')
我得到异常:Uncaught DOMException:
Failed to execute '$' on 'CommandLineAPI': '#screening_questions[0].multiple_choice[0]-dealbreakerField' is not a valid selector.
我认为根据其 id 值可以非常直接地找到它。您能建议一下这里可能出了什么问题吗?
这个错误信息...
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']"
如果我在 Chrome 控制台中搜索该元素:
$('#screening_questions[0].multiple_choice[0]-dealbreakerField')
Chrome浏览器控制台中的XPath选择方法为:
$x('xpathValue')
可以在此处找到 XPath 选择控制台功能的更详细说明:https://stackoverflow.com/a/22571294/512463