javascript - 如何在不重新加载页面或更改 html 的情况下自动填写网页上的表单

标签 javascript jquery html forms knockout.js

关闭。这个问题需要更多 focused .它目前不接受答案。












想改进这个问题?更新问题,使其仅关注一个问题 editing this post .

4年前关闭。




Improve this question




我的很多工作都需要我在网上填写表格,每次都有唯一的信息,但我的信息类型(如姓名、出生日期)都是相同的,这些都是别人给的。

我一直在尝试找到一种使用给我的数据自动填写表格的方法。

我为我的学位学习了一些编码,但从那以后就没有使用过它,我正在努力学习更多! (展示了一些 C++、html、CSS 和 javascript,但后者大多是复制和粘贴的,我记不太清了)。

我已经确定了表单每个部分的所有 html id 标记,并认为如果我将以下代码粘贴到 URL 的末尾,那么它将填写“姓氏”框,(如果这可行,我可以推断信息),但这会询问页面是否要重新加载。

?Javascript:document.getElementById("txtLastName").value="Davy";

这是因为启动表单的第一步是选择该表单是否适合我们想要将数据发送到其他地方,或者我们是否正在向其他机构请求数据。在决定这一点时,必须开始输入以搜索机构,一旦确认,就会出现表格(无论选择哪个选项,这几乎都是相同的)。

查看 html 的这一部分,我发现该页面使用了 KO - Knockout 并且开始怀疑我是否咬得比我能咀嚼的更多……
<div class="input-widget col0 semiwide required lookup notsearchable" data-bind="css: selectedInstitutionId.mandatoryFieldClass, visible: !destIndividualVisible()">
                    <label id="txtInstitution-label" for="txtInstitution" data-bind="text: instLabel">Destination institution</label>
                    <input name="txtInstitution" tabindex="3" class="input-field text" id="txtInstitution" type="text" maxlength="300" placeholder="Browse or start typing" autocomplete="off" data-bind="typeahead: {source: getData, afterSelect: afterSel},  value: selectedInstitution, valueupdate: 'afterkeydown', placeholder: browseOrTypePH,  disable: disableCtrl">
                    <input class="lookup" id="btnBrowse" type="button" value="Browse" data-bind="value: browseLabel, visible: !relatedSectionsVisible(), click: browseClicked">
                    <span class="validationMessage" style="display: none;" data-bind="text: noInstFound, visible: noInstFound"></span>
                    <input id="hdnInstitutionId" type="hidden">
                </div>

现在我想我会尝试在页面上运行一个脚本,一旦我选择了机构位置并且表格已经加载,但不确定如何在 URL 中执行此操作或单击带有 javascript 的书签没有它重新加载页面。

我将 AJAX 视为解决该问题的一种方法,但是当我显然(?)无法更改网站源代码以使其在顶部运行我自己的脚本时,我不确定使用它的方法。

目前,我想要填写表格的信息以不同的布局/格式通过电子邮件发送给我,但我的工作场所很快将转移到一个系统,对于这些类型的重复请求,请求用户填写表格。我不完全确定这些数据将如何呈现给我们,但通过搜索预计它将呈现在 html 网页的表格行中。我已经看到,如果我可以将其解析为 excel,那么我可以将其格式化为 csv 以创建一行要运行的 javascript,但再次不确定这是否可行,因为前面提到了我们在网页上的 knockout 如果这最终不会通过这么多步骤节省那么多时间。

我可以让整个过程不是自动的,因此我们可以对确保正确提供信息有所控制。我知道最终用户提供的机构名称之间通常存在很多差异,并且我认为由我自己手动输入然后填写表格的其余部分会更容易。(虽然也想当新系统出现在可能机构的下拉菜单中时,可以提供与网站上的机构同步的信息,从而使我能够轻松解析该信息并绕过 knockout/页面重新加载障碍)。

我认为我无法在我的工作场所安装任何可能有助于使其工作并想了解更多代码的软件。

最佳答案

如果您已确定要填充的 html 元素,则可以借助 Selenium 工具自动化您的流程。如果您有一些编码知识,则很容易掌握。下面是它的链接。
http://executeautomation.com/blog/functional-tools/selenium-automation-with-c/

关于javascript - 如何在不重新加载页面或更改 html 的情况下自动填写网页上的表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48023718/

相关文章:

javascript - Alfresco:编写工作流程脚本以复制同一文件夹中的文档并使用新文档继续工作流程

javascript - 为什么 naturalHeight 或 naturalWidth 返回 `undefined` ?

javascript - 如果鼠标在元素上快速移动,则防止 .hover 事件被垃圾邮件发送

c# - 找到包含特定子元素的父元素

javascript - 在 PHP 的 where 子句中使用 span 文本

javascript - jquery form.submit事件未触发

javascript - 使用 javascript 或正则表达式从值中分割数字和字符串

javascript - JSON 使用命名索引访问数组对象

php - 基于 Woocommerce 中自定义单选按钮的动态运费

HTML/CSS 三个堆叠/偏移图像