javascript - 如何使浏览器自动访问 1000 个页面并在每个页面上触发一个简单的 javascript 函数?

标签 javascript browser automation browser-automation

我需要在跟踪/报告应用程序上加载 1000 个 url(在通过 HTML 表单进行身份验证后)并触发“重新提交”javascript 函数。不幸的是,没有一次性处理所有的批量操作,所以我只剩下自动化了。我有哪些选择?

http://domain.com/0001.php
http://domain.com/0002.php
http://domain.com/0003.php
...
http://domain.com/1000.php

上述每个页面都有一个由 href 触发的 resubmit() javascript 函数。我怎样才能自动触发这些?

示例:

<form action="/resubmit" method="POST">
  <input type="hidden" name="security_token" value="SUPER-LONG-HASH">
  <input type="hidden" name="url" value="http://mysite.com/0001.html">
  <input type="hidden" name="redirect" value="long-string">
  <script type="text/javascript">
    window["resubmit"] = function () {
      document["resubmit"].submit();
      return false;
    }
  </script>
  <a href="javascript:resubmit()" class="resubmit-class">resubmit</a>
</form>

我在使用 Mac。 Unix、Perl、Bash、PHP、Automator、FireFox iMarcos 都可用。

最佳答案

你应该看看 PhantomJS ,“带有 JavaScript API 的 headless WebKit”。它允许您从命令行运行 WebKit 浏览器实例并执行 Javascript。

使用 Pjscrape 或许可以节省一些时间,一个建立在 PhantomJS 之上的工具,可以抓取多个页面或获取一长串 URL(免责声明:这是我的项目)。我没有尝试使用 1,000 多个 URL,但我认为您可以使用以下 6 行来执行您描述的操作:

pjs.addSuite({
    urls: [...], // your very long list here
    scraper: function() {
        window.resubmit();
    }
});

关于javascript - 如何使浏览器自动访问 1000 个页面并在每个页面上触发一个简单的 javascript 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7923611/

相关文章:

javascript - 出生日期计算的年龄 (dd/mm/yyyy) 格式不起作用

javascript - Lodash:在字符串中搜索至少 1 个数组中的值

security - 内容未知的图片: Dangerous for a browser?

最大页面长度的浏览器限制

go - 中午在Golang跑代码

testing - TestCafe:无法完成对 url 的请求

javascript - 什么是ExtJS的替代品?

javascript - 无法读取未定义的属性 'score'

javascript - Javascript 在 IE8 中关闭窗口

testing - 如何在同一个 CodedUI 测试中与多个浏览器交互