【问题标题】:Run source if loop fails (RSelenium)如果循环失败则运行源代码 (RSelenium)
【发布时间】:2016-01-19 14:33:08
【问题描述】:

我写了一个循环去检查一堆链接并截取屏幕截图。我经常需要成千上万的做这些。我创建的循环适用于大约 500 个链接,然后我的浏览器关闭,我收到以下错误:

    Error: Summary: UnknownError
    Detail: An unknown server-side error occurred while processing the command.
    class: org.openqa.selenium.remote.UnreachableBrowserException 

有没有办法防止这种情况发生?

如果没有,如果发生这种情况,我怎样才能让 R 运行源代码 OpenBrowser.R?

这是脚本:

    for(i in 1:nrow(URL)){      
         remDr1$navigate(URL$Link[i])
         remDr1$setTimeout(type = "page load", milliseconds = 30000)
         remDr1$screenshot(file = URL$file[i])
         }

【问题讨论】:

  • 看看tryCatchpurrr:safely
  • 我无法理解 tryCatch 的工作原理。您能否发布一个示例,说明我将如何在此代码中使用它?

标签: r selenium rselenium


【解决方案1】:

几乎没有什么可以尝试的:-

试试这个功能:-(它会等到整个页面加载。如果需要,您可以删除 page_load_time_out 或在 Inf 中制作)

wait_till_page_load<-function(page_load_time_out=60){
  t0<-Sys.time()
  while(remDr$executeScript("return document.readyState;")[[1]]!="complete" & (Sys.time()-t0)<=page_load_time_out){
    Sys.sleep(0.5)
  }
  invisible(0)
}

像这样使用它:-

for(i in 1:nrow(URL)){      
         remDr1$navigate(URL$Link[i])
         #remDr1$setTimeout(type = "page load", milliseconds = 30000)
         wait_till_page_load(500000000) # use suitable number
         try(remDr1$screenshot(file = URL$file[i]))
}

尝试将防止打破循环。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-23
    • 2023-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-21
    • 1970-01-01
    相关资源
    最近更新 更多