如何创建脚本来自动填充字段?

Posted

技术标签:

【中文标题】如何创建脚本来自动填充字段?【英文标题】:How can I create a script to fill fields automatically? 【发布时间】:2021-12-22 19:37:33 【问题描述】:

我想用 javascript 创建一个脚本,让我可以自动访问一个网站并自动填写该网站上的字段。自动填写所有字段后,我希望单击提交按钮并重新开始该过程。我通过它们的唯一 ID 定义字段。我现在遇到的问题是,当我运行脚本时,我无法自动访问网站。谁能帮助我如何改进我的脚本,以便我可以自动化这个过程?

这是我的代码:

function goingToWebsite()
        window.location.href = 'https://example.com/';
    

    function fillForm()
    document.getElementById('gender').value = "Herr"
    document.getElementById('lastname').value = "Example";
    document.getElementById('firstname').value = "Example";
    document.getElementById('address').value = "Example";
    document.getElementById('postcode').value = "Example";
    document.getElementById('city').value = "Example";
    document.getElementById('mobile').value = "Example";
    document.getElementById('email').value = "Example";
    document.getElementById('country_code').value = "Example";
    document.getElementById('birthday').value = "Example";
    document.getElementById('profession').value = "Example";
    document.getElementById('hobbies').value = "Example";
    document.getElementById('skills').value = "Example";
    document.getElementById('wish').value = "Example";
    element = document.getElementById('agb-checkbox');
    element.checked = true;
    

    function submitForm()
        document.getElementsByName("JETZT ANMELDEN").click();
    

    function main()
        for (let i=0; i<99; i++)
        goingToWebsite();
        fillForm();
        submitForm();
        setTimeout(timeout, 3000);
        
    

非常感谢

我现在是这样的:

const puppeteer = require('puppeteer');
async function main()
    const browser = await puppeteer.launch(
        headless: false
    );
    for (let i=0; i<3; i++)
    const page = await browser.newPage();
    await page.goto('https://beispiel.de/');
    await page.type('#gender', 'Herr');
    await page.type('#lastname', 'Beispiel');
    await page.type('#firstname', 'Beispiel');
    await page.type('#address', 'Beispiel 29');
    await page.type('#postcode', 'Beispiel');
    await page.type('#city', 'Beispiel');
    await page.type('#mobile', '0041797766666');
    await page.type('#email', 'Beispiel@outlook.com');
    await page.type('#country_code', 'Deutschland');
    await page.type('#birthday', '28.07.1995');
    await page.type('#profession', 'Beispiel');
    await page.type('#hobbies', 'Beispiel');
    await page.type('#skills', 'Beispiel');
    await page.type('#wish', 'Beispiel');
    await (await page.waitForSelector('#agb-checkbox')).click();
    const searchBtn = await page.$x("//button[@class='form-btn']");
    searchBtn[0].click();
    await page.waitForTimeout(5000);
    await browser.close();
    

main();

当第一个循环完成后,它不会再次重新加载新页面,这可能是什么原因?

【问题讨论】:

您希望我们帮助您填写注册表单吗?因为这就是它的样子。 您可以使用密码管理器 - 例如,LastPass 将转到该站点,然后单击将使用您设置的任何信息填写表格 【参考方案1】:

您不能使用客户端 javascript 来执行此操作。您应该使用服务器端语言来执行此操作。位置更改后,您无法管理当前站点。 如果你熟悉node js,可以使用puppeteer。

【讨论】:

感谢您的提示

以上是关于如何创建脚本来自动填充字段?的主要内容,如果未能解决你的问题,请参考以下文章

动态添加的行无法运行自动填充 ajax 脚本

如何使用自动填充html列表为用户创建搜索字段

Magento 2 如何使用淘汰赛 JS 自动填充文本字段

如何在html表单中自动填充输入字段

使用来自 javascript 的返回值自动填充隐藏的表单字段

我应该如何自动填充一个字段并在 django 中使其只读?