chrome consoneで自動化操作ホームページを実現します.

6895 ワード

chrome consoneは現在のページのコンテキスト(およびchrome拡張のコンテキスト)にしかアクセスできないので、他のタブページのコンテキストにはアクセスできないので、制約が大きく、簡単な操作にしか適用されない.
実践を通じて、chromeのラベルページのconsoneでjavascriptを実行することができます.window.openが開いている新しいタブページのコンテキストについて操作します.詳細は状況4を参照してください.
状況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";})
ここでWindows.openを使って新しいウィンドウを開けました.新しいウィンドウのコンテキストを取得できれば、本当に自動化ができます.残念ですが、だめです.chromeで広げるしかないです.
 場合3:前の記事を参照して、URLに循環アクセスするための新しいウィンドウを開き、URLに対応するzipやDOCなどがあれば、大量ダウンロードが可能です.
参照コード:
(function () {
    var aa=$("a");
    var arr=[];
    for(var i=0;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();
})();
 状況4:いわゆる「本格的な自動化」.例えば、まず新しいタブページでbaiduを開いてキーワード「美女」を入力し、検索を提出します.そしてsohuを開けて検索ボックスに「野獣」を入力してください.
参考:https://www.cnblogs.com/laden666666/p/5544572.html    https://www.cnblogs.com/yanggl/p/10211930.html 変更 chromeブラウザのドメイン別設定
しかし、私はchrome 77に設定した後、他のタブページのコンテキストを取得することができませんでした.
最後に退くしかないです.その次に、ドメインを超えないです.(私たちは通常、あるウェブサイトの内部だけを自動化して操作します.)ですから、状況4のテーマに「いわゆる」の3つの字を加えました.
ここで状況4のタスクを変更します.まず、新しいタブページでbaiduを開いてキーワード「美女」を入力し、検索を提出します.baiduの検索ボックスを開けて「野獣」を入力してください.
遅延関数を考慮することができます.
function sleep(delay) {
    for(var t = Date.now(); Date.now() - t <= delay;);
}
コードは以下の通りです.
 
var nw = window.open();
nw.location ="https://baidu.com";
(pageok = function(){
    if(nw.document.getElementById('kw') != null){
        //       
      nw.document.getElementById('kw').value ="  ";

    }
    else{
        //500      
        setTimeout(pageok , 500)
    }
})();
(pageok1 = function(){
    if(nw.document.getElementById('su') != null){
        //       
      nw.document.getElementById('su').click();
      setTimeout(function(){nw.document.getElementById('kw').value ="  "},5000);

    }
    else{
        //500      
        setTimeout(pageok1 , 500)
    }
})();