0

问题:

由于各种原因,选择器可能会随机更改,因此,使用选择器并不能保证始终成功。这是我的选择器代码。

await page.click('body > div.api-container > div > div.clearAll > form > input[type="submit"]:nth-child(3)');

是否可以改用 page.click 来单击基于“值”属性的元素?这是HTML:

<input name="submit" type="submit" value="Accept">

如您所见,该值将始终等于“接受”,搜索页面并单击匹配元素会更容易。

根据我的研究,它看起来page.$x(expression)可行,但我不确定如何编写表达式。

任何帮助是极大的赞赏!

4

1 回答 1

1

是否可以改用 page.click 来单击基于“值”属性的元素?

它是,而且你已经在你的初始选择器中有各种各样的,我说的是input[type=submit]. 而不是type元素的任何其他属性,包括value

await page.click('input[value="Accept"]');
await page.click('input[name="submit"]');

您甚至可以省略元素类型并仅通过其属性进行搜索:'[value="Accept"]',但请记住,这种方法可能会找到多个结果,并且只会单击其中的第一个(很可能,不是您想到的那个),所以首先在真实浏览器的控制台中测试选择器。

于 2018-05-19T05:03:57.413 回答