首页 > 解决方案 > 节点 Puppeteer - 如果表单具有 Google 自动完成元素,则无法单步执行

问题描述

我正在为我的应用程序开发 E2E 测试。为了逐步完成整个工作流程并确保它从头到尾工作。

现在给出一个带有自动完成元素的表单:

在此处输入图像描述

我可以输入表格,但无法选择选项。并因此通过形式前进。到目前为止我已经尝试过:

例如方法 1 - 单击一个选项

...
await page.type('input[id=ac]', 'san fran', {delay: 100})
await page.mouse.click(65, 600);
...

例如方法 2 - 自动化密钥

...
await page.type('input[id=ac]', 'san fran', {delay: 100})
await page.focus("#ac");
await page.type(String.fromCharCode(40)); //down arrow
await page.type(String.fromCharCode(13)); //enter
...

我只看到一个 Stack Overflow 回答说可能存在安全限制,但我无法通过查看任何官方文档来确认。

如何选择自动完成选项?

完整代码:

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch({ headless: false }); 
  const page = await browser.newPage();
  await page.goto('http://localhost:8080/#/');
  ...
  await page.type('input[id=ac]', 'san fran', {delay: 100})
  await page.mouse.click(65, 600);
  ...
  
})();

标签: node.jsgoogle-chrometestingpuppeteergoogle-developer-tools

解决方案


推荐阅读