【问题标题】:How to programmatically fill out Microsoft Office Forms form?如何以编程方式填写 Microsoft Office Forms 表单?
【发布时间】:2022-05-07 12:17:13
【问题描述】:

我的公司有一个 Microsoft 表单,我每个月要填写大约 10 次,但我输入的实际表单数据并没有太大变化。对于不变的字段,我希望能够以编程方式填写,可能使用 javascript。使用“用户 Javascript 和 CSS”chrome 扩展,我已经注入了 javascript 以在页面上放置一个按钮,我可以单击以填写它,但是当我单击“提交”时,表单没有检测到这些字段已被填充。

这是一个示例表单: https://forms.office.com/Pages/ResponsePage.aspx?id=A2isORETDk26ciZZHMzhJJh3e-CRp49LqjxXVoNyf99UQVZZTkdHS0ZVTkJHSDg5RE1VNkZDWVJPRS4u

这里有点jquery来填写文本框

$('#form-container > div > div > div.office-form-content.office-form-page-padding > div > div.office-form.office-form-theme-shadow > div.office-form-body > div:nth-child(2) > div:nth-child(2) > div.office-form-question-content.office-form-theme-focus-border > div.office-form-question-element > div > div > div > input')[0].value = "hello"

请注意,当您单击“提交”时,该字段变为空白并收到验证错误。

如何以编程方式填充这些字段以使表单接收数据?

【问题讨论】:

  • 我会检查Autofill 在这种情况下是否有效。
  • 我正在用 Tampermonkey 注入 JS,但看起来他们很难伪造。基于浏览器的自动填充(扩展)对我也不起作用,它们可能以我试图做的所有相同方式触发按键事件等。最终用桌面宏记录器做对了。不是我想要的,但至少我不必每天都填写相同的表格,保证我仍然没有 'rona。
  • 谢谢谢尔顿!我曾尝试过早先建议的实用程序,但也无济于事,还有一些 javascript hack,也没有找到合适的方法来做到这一点。

标签: javascript jquery microsoft-forms


【解决方案1】:

您需要检查哪些事件侦听器具有您要填充的输入。您可以通过访问浏览器开发人员工具 (F12) 来完成此操作。

转到“元素”选项卡并选择输入。您将看到具有“事件侦听器”选项卡的右侧或下方部分。在这里,您必须禁用显示祖先事件侦听器的选项。

Event listener of a radio button

正如您在图片中看到的,收音机类型输入有一个“更改”事件。

你只需要像这样填写输入后派发对应的事件:

const input = document.getElementsByClassName("Element selector");
const changeEvent = new Event("change"); //Create the event
input.checked = true; //Change input value
input.dispatchEvent(changeEvent); //Dispatch event

在文本输入的情况下,您需要像这样调度一个“输入”事件:

const input = document.getElementsByClassName("Element selector");
const inputEvent = new Event("input"); //Create the event
input.value = "New value"; //Change input value
input.dispatchEvent(inputEvent); //Dispatch event

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-29
    • 2020-09-27
    • 1970-01-01
    • 2012-01-12
    • 2014-09-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多