【问题标题】:Unable to type after click with Puppeteer使用 Puppeteer 点击后无法输入
【发布时间】:2021-04-02 07:26:21
【问题描述】:

我几乎尝试了任何方法,但在单击输入后仍然无法插入用户名。 我知道还有其他解决方案可以在不点击的情况下这样做我也尝试过但仍然无法正常工作......

单击正在工作,光标闪烁现在我只需要“输入”一些东西。

const puppeteer = require('puppeteer');

const creds = {
    email: "myemail",
    password: "mypassword",
};

(async () => {
    const browser = await puppeteer.launch({headless: false, args: ['--start-maximized']});
    const page = await browser.newPage();
    //set viewport
    await page.setViewport({
        width: 1920,
        height: 1080,
    })
    await page.goto('https://qa.traffilog.co.il/new_web/index.htm', {waitUntil: 'networkidle0'});
    const username = await page.$x('/html/body/div[1]/div/div[1]/div/div[2]/div/div[1]/div/div[2]/div/div[3]/div/div[1]/div/div/div/div/div/div[2]/div/div[1]/div/input[1]');

    await username[0].click();
    await page.waitForNavigation({ waitUntil: 'networkidle0' });
    await page.type(username, creds.email);
    await page.waitForNavigation({ waitUntil: 'networkidle0' });


    // await browser.close();
})

();

【问题讨论】:

  • 您可以在不指定目标的情况下使用类型。您也可以使用 page.keyboard.press()

标签: javascript node.js google-chrome-devtools puppeteer


【解决方案1】:

根据我在文档 Page.type 中阅读的内容,选择器不是 ElementHandle。但是因为您使用的是 ElementHandle,您可以尝试使用 username[0].value=creds.email 设置输入值

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多