代码之家  ›  专栏  ›  技术社区  ›  Jebathon

节点Puppeteer-如果表单有谷歌自动完成元素,则无法遍历表单

  •  0
  • Jebathon  · 技术社区  · 4 年前

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

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

    enter image description here

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

    例如,方法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
    ...
    

    我只看到 one Stack Overflow answer 也就是说可能有安全限制,但我无法通过查看任何官方文件来确认。

    如何选择自动补全选项?

    完整代码:

    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);
      ...
      
    })();
    
    0 回复  |  直到 4 年前