1

如何点击hrefNightwatch 中的链接?

href文本彼此相同,所以我不能使用 XPath 文本。

我试过了:

browser.useXpath().click("//a[href='./basket/removeItem.html?id=5de6710f75a5750f3d88495b')]");

但这不起作用。

4

2 回答 2

1

至少,更正您的 XPath 以在属性@前面添加并删除虚假:href )

//a[@href='./basket/removeItem.html?id=5de6710f75a5750f3d88495b')]
    ^add                                                        ^delete

如果id变化是一个问题,请通过以下方式排除它starts-with()

//a[starts-with(@href, './basket/removeItem.html')]

如果页面上有多个这样@href的属性,您可以通过索引选择一个(如@Christine 所示,+1):

//a[starts-with(@href, './basket/removeItem.html')][1]

实际问题

aOP 添加了一个指向 HTML 图像(呃)的链接,该链接通过 ::before CSS伪元素显示目标链接位于文档中。在这种情况下,元素实际上并不存在于要像往常一样选择的 DOM 中。

也可以看看:

于 2019-12-03T15:35:33.033 回答
0

您可以使用 XPath 中的索引来选择第一个或第二个链接。

对于第一个链接:

//a[@id='tst_remove_from_basket'][1]

对于第二个链接:

//a[@id='tst_remove_from_basket'][2]
于 2019-12-03T15:39:26.843 回答