问题:
选择器可能由于各种原因而随机更改,因此,使用选择器并不能始终保证成功。这是我的选择器代码。
await page.click('body > div.api-container > div > div.clearAll > form > input[type="submit"]:nth-child(3)');
是否可以使用page.click根据“value”属性点击元素?这是HTML:
<input name="submit" type="submit" value="Accept">
正如您所看到的,该值始终等于“接受”,搜索页面并单击匹配元素会更容易。
根据我的研究,看起来page.$x(expression)
会起作用,但我不确定如何编写表达式。
非常感谢任何帮助!
答案 0 :(得分:1)
是否可以使用page.click根据“value”属性单击元素?
确实如此,您在初始选择器中已经有各种各样的内容,我在谈论class Cache {
static final Cache STORE = new Cache();
class Index {
public byte[] getFile(String archiveId) {}
public String getArchiveId(String id) {}
}
public Index[] getIndexes() {}
}
。可以有元素的任何其他属性,而不是input[type=submit]
,而不是type
:
value
您甚至可以省略元素类型并仅按其属性进行搜索:await page.click('input[value="Accept"]');
await page.click('input[name="submit"]');
,但请记住,此方法可能会找到多个结果,only the first of them will be clicked(很可能不是您的那个)记住了),首先在真正的浏览器控制台中测试选择器。