簡體   English   中英

如何在沒有錯誤的情況下單擊 Javascript 中的大量元素?

[英]How to click a lot of elements in Javascript without errors?

我一直在嘗試在 Nord VPN 網站上下載所有美國和加拿大服務器: https ://nordvpn.com/ovpn/

我嘗試手動下載它,但每次向下滾動並識別每個美國相關服務器都很耗時,所以我只編寫了可以在 Chrome Inspect Element Console 上運行的簡單 Javascript:

var servers = document.getElementsByClassName("mr-2");
var inc_servers = [];
for (var i = 0; i < servers.length; i++) {
  var main_server = servers[i];
  var server = servers[i].innerText;
  if(server.includes("ca")){
        var parent_server = main_server.parentElement.parentElement;
        parent_server.querySelector(".Button.Button--primary.Button--small").click();
        inc_servers.push(server);
  }
}
console.log(JSON.stringify(inc_servers));

我還編寫了簡單的 python 腳本,自動單擊“保存”文件:

while True:
    try:
        app2 = pywinauto.Application().connect(title=u'Save As', found_index=0)
        app2.SaveAs.Save.click()
    except:
        pass

它獲取所有元素,它在那里工作,但是,當我讓 javascript 單擊每個元素時,可能是因為元素太多,它返回一個錯誤:

VM15575:8 限制導航以防止瀏覽器掛起。 請參閱https://crbug.com/1038223 命令行開關 --disable-ipc-flooding-protection 可用於繞過保護

對於我的問題,還有其他最佳選擇嗎? 或者也許如何修復上面的錯誤消息? 我嘗試在命令提示符下運行此命令: switch --disable-ipc-flooding-protection

但它也返回一個錯誤:'switch' 不是內部或外部命令、可運行程序或批處理文件。

我只知道基本的 Javascript 和 Python。 謝謝

所以馬上,你的程序只是下載文件太快了。

在每個文件下載之間添加一個小的延遲可以讓您的 JavaScript 運行。

var servers = document.getElementsByClassName("mr-2");
var inc_servers = [];
for (var i = 0; i < servers.length; i++) {
  var main_server = servers[i];
  var server = servers[i].innerText;
  if(server.includes("ca")){
        var parent_server = main_server.parentElement.parentElement;
        // Add 1 second delay between each download (fast enough on my computer.. Might be too fast for yours.)
        await new Promise(resolve => setTimeout(resolve, 1000));
        parent_server.querySelector(".Button.Button--primary.Button--small").click();


  }
}
// Remove the logging. Just tell the user that it's worked
console.log("Done downloading all files.");

這更像是一個臨時解決方案,但這個腳本似乎只需要運行一次,所以它現在可以工作。

(您的 python 代碼運行良好。無事可做)

希望這有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM