gpt4 book ai didi

javascript - 如何使用 JS 自动填写 Google 表单并随机填写

转载 作者:行者123 更新时间:2023-12-02 21:22:56 26 4
gpt4 key购买 nike

我想使用 JS 随机填写 100 个 google 表单。有什么办法可以做到吗?有example google form 。我在 stackoverflow 或 web 上找不到任何内容,只有 python 或 java 解决方案。但如果可能的话,我当然想用 javascript 来做。

最佳答案

这是一个脚本,可以作为一个起点。它适用于您作为示例提供的特定表单。它使用 document.querySelector 来定位表单元素。

一旦您打开表单,它就会一遍又一遍地填写、提交、返回、提交。

使用它:

  • 安装TamperMonkey Google Chrome 中的扩展程序
  • 点击浏览器中显示的图标,选择“仪表板”
  • 创建一个新脚本,并将所有内容替换为以下代码
  • Ctrl + S 保存
  • 在选项卡中打开表单并观察其工作情况

代码:

// ==UserScript==
// @name GoogleForm Spammer
// @namespace http://tampermonkey.net/
// @version 0.1
// @description Spam a Google Form
// @author You
// @match https://docs.google.com/forms/*
// @grant unsafeWindow
// ==/UserScript==

(function() {
window.addEventListener('load', function() {
if (window.location.pathname.indexOf('/forms/d') === 0) { // If we're on the form page
submitRandomForm();
} else if (window.location.pathname.indexOf('/forms/u') === 0) { // If we're on the "submitted" page
goBackToForm();
}

function submitRandomForm() {
// Size
var radios = document.querySelectorAll(".appsMaterialWizToggleRadiogroupRadioButtonContainer"),
radioIndex = Math.floor(Math.random() * radios.length);
radios[radioIndex].click();

// Print
var checkboxes = document.querySelectorAll(".appsMaterialWizTogglePapercheckboxCheckbox"),
checkboxIndex = Math.floor(Math.random() * checkboxes.length);
checkboxes[checkboxIndex].click();

// Age (between 16 and 45)
var age = Math.floor(Math.random() * 30) + 16;
document.querySelector(".quantumWizTextinputPaperinputInput").value = age;

// Submit
document.querySelector(".freebirdFormviewerViewCenteredContent .appsMaterialWizButtonPaperbuttonLabel").click();
}

function goBackToForm() {
window.location.href = 'https://docs.google.com/forms/d/e/1FAIpQLSd7GueJGytOiQpkhQzo_dCU0oWwbk3L1htKblBO1m14VHSpHw/viewform';
}
});
})();

这是一个更简洁的方法。您可以在顶部声明表单 URL、表单字段,以及其中某些字段的函数,该函数将根据您的需要返回随机值。

要尝试这个,请保存该脚本,然后 try accessing this form :

// ==UserScript==
// @name GoogleForm Spammer
// @namespace http://tampermonkey.net/
// @version 0.1
// @description Spam a Google Form
// @author You
// @match https://docs.google.com/forms/*
// @grant none
// ==/UserScript==

var formUrl = 'https://docs.google.com/forms/d/e/1FAIpQLSdQ9iT7isDU8IIbyg-wowB-9HGzyq-xu2NyzsOeG0j8fhytmA/viewform';
var formSchema = [
{type: 'radio'}, // A
{type: 'radio'}, // B
{type: 'checkbox'}, // C
{type: 'checkbox'}, // D
{type: 'short_text', func: generateAnswerE }, // E
{type: 'paragraph', func: generateParagraph }, // F
];

function generateAnswerE() {
// Let's say we want a random number
return Math.floor(Math.random() * 30) + 16;
}

function generateParagraph() {
// Just for the example
return "Hello world";
}

(function() {
window.addEventListener('load', function() {
if (window.location.pathname.indexOf('/forms/d') === 0) { // If we're on the form page
submitRandomForm();
} else if (window.location.pathname.indexOf('/forms/u') === 0) { // If we're on the "submitted" page
window.location.href = formUrl;
}

function submitRandomForm() {
var formItems = document.querySelectorAll('.freebirdFormviewerViewItemsItemItem');

for (var i = 0; i < formSchema.length; i++) {
var field = formSchema[i],
item = formItems[i];
switch(field.type) {
case 'radio':
var radios = item.querySelectorAll(".appsMaterialWizToggleRadiogroupRadioButtonContainer"),
radioIndex = Math.floor(Math.random() * radios.length);
radios[radioIndex].click();
break;
case 'checkbox':
var checkboxes = item.querySelectorAll(".appsMaterialWizTogglePapercheckboxCheckbox"),
checkboxIndex = Math.floor(Math.random() * checkboxes.length);
checkboxes[checkboxIndex].click();
break;
case 'short_text':
item.querySelector(".quantumWizTextinputPaperinputInput").value = field.func();
break;
case 'paragraph':
item.querySelector(".quantumWizTextinputPapertextareaInput").value = field.func();
break;
}
}

// Submit
document.querySelector(".freebirdFormviewerViewCenteredContent .appsMaterialWizButtonPaperbuttonLabel").click();
}
});
})();

关于javascript - 如何使用 JS 自动填写 Google 表单并随机填写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60803718/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com