2016-05-10 17 views
1

Я столкнулся с некоторыми ошибками таймаута, которые останавливают мой цикл. Я первый попытался просто увеличить время ожидания с этой команды:Как отправить обновление, если время ожидания превышено при запуске цикла?

remDr$setImplicitWaitTimeout(milliseconds = 100000) 
remDr$setTimeout(type = "page load", milliseconds = 100000) 

Однако я заметил, что просто увеличивая время ожидания не решают проблему, потому что сайт просто замерзает иногда и единственный способ это исправить освежает. Итак, мне было интересно, есть ли способ обновить браузер, если превышено время ожидания?

+0

'remDr $ refresh()'? – Psidom

+0

@Psidom, я знаю эту функцию. Но мне нужно послать обновление, когда произошла ошибка при запуске цикла. –

+0

У меня не хватает exp в r, но в java, я могу сделать это по-другому .... я могу поделиться этим с u, если вы можете преобразовать это в r. – noor

ответ

0

Я обнаружил, что есть команда читать код HTML, а также ловить ошибки. Это работает для меня:

while(class(try(remDr$getPageSource(header = TRUE), silent = TRUE))=="try-error"){try(remDr$refresh(), silent = TRUE)} 

Стоит отметить, что для того, чтобы это работало, необходимо увеличить время ожидания загрузки страницы. Это то, что работает для меня:

remDr$setImplicitWaitTimeout(milliseconds = 10000) 
remDr$setTimeout(type = "page load", milliseconds = 100000)