包含 CSS 选择器以用 nightwatch / selenium 填充表单
Contains CSS Selector to fill a form with nightwatch / selenium
我的问题:
我尝试使用 NightwatchJS 测试的页面包含一些具有相同开头的输入字段,但添加了一个随机数。我想填写页面上的文本字段。同时只有一个具有此名称的存在。
<input id="groupNamec7aed06a-67a1-4780-9cc3-5b985666adb9" class="d-styled-input" data-value-update="keyup" data-bind="value: name" title="">
是Field的定义。 groupName 每次都是一样的,只是数字变了。
是否可以在 nightwatch 中使用 CSS 选择器而不是 XPATH?
很遗憾CSS选择器没有提供这样的方式。您可以使用不同的 CSS 选择器将输入与 id 匹配并将其作为列表获取。之后使用 getAttribute('id')
你可以手动完成,但这对我来说似乎是不必要的努力,我建议只使用 Xpath。
当然,您可以尝试使用不同的独特 CSS 选择器。如果它在一个表单中,你可以找到该表单并使用 :nth-child
但如果我没记错的话这在 IE 中有 limited/no 支持。
编辑 显然 IE9 及更高版本支持 :nth-child
你可以这样试试:
input[id^="groupName"]
来自 MDN > Attribute selectors :
[attr^=value]
: Represents an element with an attribute name of attr and whose first value is prefixed by "value".
我的问题:
我尝试使用 NightwatchJS 测试的页面包含一些具有相同开头的输入字段,但添加了一个随机数。我想填写页面上的文本字段。同时只有一个具有此名称的存在。
<input id="groupNamec7aed06a-67a1-4780-9cc3-5b985666adb9" class="d-styled-input" data-value-update="keyup" data-bind="value: name" title="">
是Field的定义。 groupName 每次都是一样的,只是数字变了。
是否可以在 nightwatch 中使用 CSS 选择器而不是 XPATH?
很遗憾CSS选择器没有提供这样的方式。您可以使用不同的 CSS 选择器将输入与 id 匹配并将其作为列表获取。之后使用 getAttribute('id')
你可以手动完成,但这对我来说似乎是不必要的努力,我建议只使用 Xpath。
当然,您可以尝试使用不同的独特 CSS 选择器。如果它在一个表单中,你可以找到该表单并使用 :nth-child
但如果我没记错的话这在 IE 中有 limited/no 支持。
编辑 显然 IE9 及更高版本支持 :nth-child
你可以这样试试:
input[id^="groupName"]
来自 MDN > Attribute selectors :
[attr^=value]
: Represents an element with an attribute name of attr and whose first value is prefixed by "value".