用chrome console实现自动化操作网页

因为chrome console只能访问当前页的上下文(以及chrome扩展的上下文),无法访问其他标签页面的上下文,所以局限性较大,仅适用于一些较简单的操作

情况1:页面上有多个url链接,每个url的href中包含有 XXXX 字样,想要一次全部点开

参考代码:

var a = $$("a[href*='javaScript:openFullWindowHaveBarForWFList']")
a.forEach(function(w){w.click()})

情况2:这些链接中都包含6个数字,想要提取出来并组成新的URL后,全部点开

参考代码:

var a = $$("a[href*='javaScript:openFullWindowHaveBarForWFList']")
var id =[]
a.forEach(function(i){id.push(String(i).match(/[0-9]{6}/)[0])})
id.forEach(function(j){var  nw = window.open();nw.location = "http://192.168.132.80/workflow/request/ManageRequestNoForm.jsp?fromFlowDoc=&requestid=" + j +"&isrequest=0&isovertime=0&isaffirmance=&reEdit=1&seeflowdoc=0&isworkflowdoc=0&isfromtab=false";})

这里用window.open打开了新窗口,如果能获取新窗口的上下文,就可以真正实现自动化了。可惜不行。只有用chrome扩展才行。

 情况3:参考上一篇文章,打开新窗口用于循环访问URL,如果URL对应的zip或DOC等,则可以实现批量下载。

参考代码:

(function () {
    var aa=$("a");
    var arr=[];
    for(var i=0;i<aa.length;i++){
      if(/owner=/.test(aa[i].href)){
      arr.push(aa[i].href);
    }
    }
    var nw = window.open();
    var i = 0;
    function op() {
        console.log(arr[i]);
        nw.location = arr[i];
        i++;
        if (i<arr.length)
            setTimeout(op, 5000);
    }
    op();
})();

猜你喜欢

转载自www.cnblogs.com/pu369/p/12022911.html