Nightwatch - 使用按钮文本名称单击按钮

时间:2017-07-05 20:16:39

标签: html css automation automated-tests nightwatch.js

有没有办法点击按钮使用按钮文字?

<label class="button"><span>Button 1</span></label> <label class="button"><span>Button 2</span></label> <label class="button"><span>Button 3</span></label> <label class="button"><span>Button 4</span></label>

我目前使用:nth-of-type找到它们,但我正在寻找更具可读性的东西。 (Xpath也不太可读)。

我正在考虑的另一个选项是使用页面对象并在那里移动不可读的选择器。

2 个答案:

答案 0 :(得分:1)

CSS选择器目前不支持匹配文本,可能永远不会。您可以使用xpath按文本定位按钮。

/ *这将匹配包含字符串&#39;按钮1&#39;的按钮。如果有人说,按钮12,夜班人会抱怨与该选择器匹配的多个元素,但它通常会起作用。 * /

db.auth("root","root")

/ *  这只会匹配完全匹配的按钮字符串&#39;按钮1&#39; * /

.useXpath().click("//*[contains(text(),'Button 1')]") //注意空格很重要,所以如果html中有一个前导空格或尾随空格或其他任何内容,它就不会起作用。

/ *最后,让我们说你的按钮没有编号,就像这个html:* /

.useXpath().click("//*[.='Button 1']")

/ *你还有这里的选择。通过索引到您想要的项目。我们假设您要单击带有文本&#34; Foo&#34;的第二个按钮。为此,将xpath表达式包装在括号中,然后在括号中注明索引,如下所示:* /

<button class="astext"><span>Foo</span></button>
<button class="astext"><span>Foo</span></button>
<button class="astext"><span>Foo</span></button>
<button class="astext"><span>Foo</span></button>

xpath选择器值得了解。有时候编写一个xpath选择器并且练习起来要简单得多,它很容易做到。 Here is an excellent source document on xpath selectors

答案 1 :(得分:-1)

您可以将它们配置为按钮。然后使用CSS将它们设置为文本。

primes[c-'a']