我正在尝试使用puppeteer自动执行表单填充过程。一页上有两种形式,它们几乎是相同的,即使它们的父类是相同的。
我成功填写了第一份表格。但是我不知道如何填写第二个表单,该表单具有完全相同的输入字段,例如username和all。
如何区分这两种形式并准确访问我想要的输入字段。
为便于参考,我在这里共享了一些代码。
await page.click('input[name="fullName"]');
await page.keyboard.type("Nitin");
像上面一样,我成功填写了第一个包含用户名字段的表单。 现在,第二种形式也具有相同的用户名字段。现在我该如何填补那个?
谢谢。
答案 0 :(得分:0)
在搜索元素之前,可以使用page.$$()
或page.evaluate(
)循环浏览表单。
答案 1 :(得分:0)
最简单的方法是首先通过page.$$
获取两种形式的元素句柄,然后使用另一个查询来查询其子元素。
示例
const forms = await page.$$('form'); // array contains the form element handles
const elementInForm1 = await forms[0].$('input[name="fullName"]');
await elementInForm1.click();
// ...
const elementInForm2 = await forms[1].$('input[name="fullName"]');
await elementInForm2.click();
// ...
变量forms
包含页面内的所有form
元素。通过使用elementHandle.$
,您可以查询另一个元素中的一个元素。