如何在 nightwatch.js 中使用 link 文本单击 link
How to click a link using link text in nightwatch.js
假设我的网页上有这些元素。
<a href="/dynamic1">One</a>
<a href="/dynamic2">Two</a>
<a href="/dynamic3">Three</a>
我想单击带有文本 Two
的 link。如何使用 Link 文本 识别或单击没有任何唯一属性(如 id 或 class)的元素。
在 .Net 中我可以使用 driver.findElement(By.linkText("Images")).click();
。 nightwatch.js
中的等价物是什么
elements()
方法的第一个参数是 定位器策略 ,使用 link text
- 它受支持:
client
.url('http://website.org')
.waitForElementVisible('body', 1000)
.elements('link text', 'Two', function (result) {
for (var i = 0; i < result.value.length; i++) {
var element = result.value[i];
// do something
}
})
.end();
定位器 By.linkText
在内部使用 XPath。
因此,单击带有 XPath 的示例中的第二个 link:
.useXpath() // every selector now must be XPath
.click("//a[text()='Two']")
.useCss() // we're back to CSS now
请注意,根据内部 HTML,您可能需要连接子项和 trim 空格:
.click("//a[normalize-space()='Some link']")
对我有用的唯一方法是使用:
.useXpath()
.click("//*[contains(text(), 'Two')]")
.useCss()
现在有更好的方法,您可以使用任何已记录的 locator strategies。任何一个; id
, css
selector
, link text
, partial link text
, tag name
, xpath
.)
browser
.click('link text', 'Some Link Text');
假设我的网页上有这些元素。
<a href="/dynamic1">One</a>
<a href="/dynamic2">Two</a>
<a href="/dynamic3">Three</a>
我想单击带有文本 Two
的 link。如何使用 Link 文本 识别或单击没有任何唯一属性(如 id 或 class)的元素。
在 .Net 中我可以使用 driver.findElement(By.linkText("Images")).click();
。 nightwatch.js
elements()
方法的第一个参数是 定位器策略 ,使用 link text
- 它受支持:
client
.url('http://website.org')
.waitForElementVisible('body', 1000)
.elements('link text', 'Two', function (result) {
for (var i = 0; i < result.value.length; i++) {
var element = result.value[i];
// do something
}
})
.end();
定位器 By.linkText
在内部使用 XPath。
因此,单击带有 XPath 的示例中的第二个 link:
.useXpath() // every selector now must be XPath
.click("//a[text()='Two']")
.useCss() // we're back to CSS now
请注意,根据内部 HTML,您可能需要连接子项和 trim 空格:
.click("//a[normalize-space()='Some link']")
对我有用的唯一方法是使用:
.useXpath()
.click("//*[contains(text(), 'Two')]")
.useCss()
现在有更好的方法,您可以使用任何已记录的 locator strategies。任何一个; id
, css
selector
, link text
, partial link text
, tag name
, xpath
.)
browser
.click('link text', 'Some Link Text');