2016-01-19 4 views
1

Я написал цикл, чтобы проверить кучу ссылок и сделать скриншоты. Мне часто приходится делать это в тысячах. Петля я создал хорошо работает около 500 ссылок, а затем мой браузер закрывается, и я получаю следующее сообщение об ошибке:Исходный источник, если цикл завершен (RSelenium)

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]) 
     } 
+1

Взгляните на 'tryCatch' или' purrr: safeely' – hrbrmstr

+0

Я не смог понять, как работает tryCatch. Не могли бы вы привести пример того, как я буду использовать его в этом коде? – yake84

ответ

4

Мало что можно попробовать, как: -

Попробуйте эту функцию: - (он будет ждать до полной загрузки страницы При необходимости вы можете удалить 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])) 
} 

Попробуйте предотвратить разрыв цепи.

Смежные вопросы