【问题标题】:Open specific webpage and autofill fields with JavaScript使用 JavaScript 打开特定网页和自动填充字段
【发布时间】:2020-03-04 03:03:44
【问题描述】:

我有一个需要在多台计算机上登录的网站 IOT 允许考生参加考试。 如果用户有 IE,我已经编写了一个完美的 .vbs。但是我不知道如何编写 JavaScript 或任何其他代码语言来使用 Chrome。该网站在任何一种浏览器上都运行良好,有时测试是在没有安装 IE 的 Chromebook 上进行的。

这是我的 .vbs:

REM Save as .vbs, select save as all in drop down, 
REM type .vbs in place of .txt

Set IE = CreateObject("InternetExplorer.Application")
IE.navigate "https://www.dmdc.osd.mil/icat/loginCEP.do"
IE.FullScreen = True
IE.Visible = True

While IE.Busy
    WScript.Sleep 50
Wend

Set ipf = IE.document.all.username
ipf.Value = "username" REM replace with your username 
Set ipf = IE.document.all.password
ipf.Value = "password" REM replace with your password 

Set ipf = IE.document.all.sess_id
ipf.Value = "nnnnnn"

Set ipf = IE.document.all.st_id  
ipf.Value = "nn" REM first 2 numbers of school code
Set ipf = IE.document.all.cnt_id
ipf.Value = "nnn" REM next 3 numbers of school code
Set ipf = IE.document.all.sch_id
ipf.Value = "nnnn" REM last 4 numbers of school code

【问题讨论】:

  • 不回答我的问题。不过谢谢。
  • 只是为了确保我理解:这里的目标是编写一个可以进入(例如)Chromebook 所具有的任何内容的程序,而不是启动浏览器然后填写一个开始菜单的程序自动登录表格。对吗?
  • 请发布一些输入数据作为示例,以及您要填写的页面的HTML内容。
  • @besciualex — 所有这些都可以从问题中的代码中推断出来……但这并不是问题的棘手部分,即如何在 Chrome OS 上自动化浏览器。

标签: javascript


【解决方案1】:

Chrome 似乎还不支持 VBScript。如果您想学习 JavaScript 的基础知识,可以寻找免费课程。所有现代浏览器都支持 JavaScript。要建立一个网站,您基本上需要学习三件事:HTML、JavaScript 和 CSS。您可以学习许多其他框架,例如 Angular CLI;但这是更先进的。将来学习 Angular CLI 的好处在于,您可以轻松地扩展您的应用程序。您可以选择使用 TypeScript 或 SCSS 之类的东西来为您编译和填充 JavaScript 和 CSS,因此几乎可以保证所有/旧版浏览器都得到支持。但是你现在可以自己测试一下,例如边缘和铬。这种想法不需要 Angular CLI。 W3Schools 有一些很好的教程。

下面是一个简单的网站...如果需要,您可以将 JavaScript 和 CSS 直接包含到 HTML 中(就像在此处完成的那样)我还建议使用应用程序 VS Code 进行编码...但是如果您想要实时测试较小的网站无需安装任何东西即可生存,您可以使用Brackets之类的东西:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Your document</title>
</head>
<style>
    /* CSS */
    body {
        font-size: 90px;
    }
    #button0 {
        color: blue;
    }
</style>
<body>
    <h1 id="h1_0">Hello</h1>
    <button id="button0" onclick="changeHeader()">
        Change the header
    </button>
    
    <!-- JavaScript (you want to run the JS after the HTML-element has been loaded usally...) -->
    <script>
        function changeHeader() {
            var header = document.getElementById('h1_0');

            header.innerHTML += ' Hello You';
        }
    </script>
</body>
</html>

当然,您应该始终考虑安全性...所以不要将答案隐藏在网站上。为此使用服务器...但是,如果您要创建测试,您可能知道答案,或者将它们保存在安全的地方以便以后手动检查,因此您现在不需要考虑!如果您要创建多个测试,我还建议您创建一个模板,您可以(现在)复制和粘贴,然后填写。

您还应该阻止更新网站,以免学生意外这样做。并考虑如何显示和存储完成的数据,如果您要接收它。服务器和数据库可以解决问题,但它更高级,所以可以在本地下载。

也许你的考试不认真?只是对自己的考验?这会让事情变得容易得多,因为只有在他们作弊的情况下,他们才会成为输家。

如果你想做一份小工作,我可以帮助你入门,但自己尝试一下很有趣。

注意: 如果您不想使用 JavaScript 代码更新页面本身以处理自动化并按照其他用户的建议使用外部软件,您可以使用类似 Wildfire Browser Automation 的内容用于 Chrome。还有其他选择。 JavaScript 是一种客户端语言,如果在 Windows CMD 中运行它,它的工作方式与 VBScript 不同,因为它不是为它而设计的。你可以让学生使用类似Custom JavaScript for websites的东西来填写字段(使用开发工具来定位字段ID),方法是给他们一个脚本。

【讨论】:

  • 问题是关于从外部程序自动化浏览器,而不是编写作为网站一部分的客户端代码。
  • 您可能想阅读问题中的 VBScript 代码。它使用 Windows Scripting Host 运行以启动 Internet Explorer,导航到 URL,然后将其填写。(它在网页中的 &lt;script language="vbscript"&gt; 中运行)。他们希望在运行 Chrome OS 而不是 Windows 的计算机上实现相同的效果。
  • @Quentin 好吧,您不能在网站中使用 JavaScript 来从您无法控制的网站(不使用开发工具)自动化和/或阻止嵌入(同源策略) .您不能将 JavaScript 用作 VBScript 之类的外部自动化脚本文件,因为这不是它的用途。最好的选择是在网站上添加更多的 JS 代码,以便它可以处理来自 URL 的数据的自动化(如果可能的话)。或者对 Chrome 使用类似 Wildfire Browser Automation 的东西。
  • “您不能将 JavaScript 用作像 VBScript 这样的外部自动化脚本文件”——我可以(并且可以)。 (我不知道在 Chrome OS 上是否可行,否则我会回答)。
  • “最好的选择是在网站上添加更多的 JS 代码,这样它就可以使用来自 URL 的数据处理自动化(如果可能的话)。”——这将需要 OP 控制网站(这似乎不太可能)。
猜你喜欢
  • 1970-01-01
  • 2011-08-19
  • 1970-01-01
  • 2013-04-24
  • 1970-01-01
  • 2013-07-22
  • 2014-03-15
  • 1970-01-01
  • 2016-07-02
相关资源
最近更新 更多