如何自动填充简单表单并单击JavaScript中的提交以获取chrome扩展

时间:2016-09-27 18:06:00

标签: javascript html forms google-chrome automation

现在已经尝试这样做了几天,并且已经失败并且已经搜索了一些例子,但是找不到一个有帮助的例子。

我希望通过填写详细信息并以编程方式单击提交来浏览网页。

页面如下:

<form method='post' action='login.php'>
    <table>
        <tr>
        <td>Email Address: </td>
        <td ><input type='Text' size='30' name='email'></td>
        </tr><tr>
        <td>Password: </td>
        <td ><input type='password' size='30' name='password'></td>
        </tr><tr>
        <td colspan=2>&nbsp;</td>
        </tr><tr>
        <td>&nbsp;</td>
        <td  align='left'><input type='Submit' value='Log in'></td>
        </tr>
        <td colspan=2>&nbsp;</td>
        <tr><td colspan=2><hr></td></tr>
    </table>
</form>

我无法更改上面现有的网页,所以想要在用JavaScript编写的chrome扩展中包含代码,以便在我无法通过登录页面的那一刻节省大量时间!

我在远古时代一直是程序员,但我还没有完全熟悉JavaScript语法..

我的一个问题是表单似乎没有ID。

有人可以帮忙吗?

感谢您的帮助,但我仍然在努力,所以增加了更多细节。 我已经设法在IE中使用VB过去(使用Excel宏)使用:

进行提交
    Sub PressSubmit(IE)
    With IE.Document
    Set elems = .getElementsByTagName("input")
    For Each e In elems
        If (e.getAttribute("value") = "Log in") Then
            e.Click
            Exit For
        End If
    Next e

IE.Document.all("email").Value = "me@email.address"
IE.Document.all("password").Value = "myPassword"
Call PressSubmit(IE)

但是现在我需要在Chrome上做同样的事情,我正在努力学习JavaScript语法,这对我来说是新手,有没有人可以给我一个JavaScript版本,或者更好的版本,我可以通过示例来学习?

1 个答案:

答案 0 :(得分:0)

您可以使用document.querySelector()Element.querySelector()attribute selectors to set values at elements, call。click()on element to submit`

<!DOCTYPE html>
<html>

<head>
</head>

<body>
  <form method='post' action='login.php'>
    <table>
      <tr>
        <td>Email Address: </td>
        <td>
          <input type='Text' size='30' name='email'>
        </td>
      </tr>
      <tr>
        <td>Password: </td>
        <td>
          <input type='password' size='30' name='password'>
        </td>
      </tr>
      <tr>
        <td colspan=2>&nbsp;</td>
      </tr>
      <tr>
        <td>&nbsp;</td>
        <td align='left'>
          <input type='submit' value='Log in'>
        </td>
      </tr>
      <tr>
        <td colspan=2>&nbsp;</td>
      </tr>
      <tr>
        <td colspan=2>
          <hr>
        </td>
      </tr>
    </table>
  </form>
  <script>
  var form = document.querySelector("form[action='login.php']");
  var submit = form.querySelector("input[type='submit'][value='Log in']");
  if (submit.length) {  
    form.querySelector("input[name='email']").value = "me@email.address";
    form.querySelector("input[type='password']").value = "myPassword";
    submit.click();
  }
  </script>
</body>

</html>