2016-05-10 16 views
1

我一直遇到一些超时错误,阻止我的循环。我第一次尝试简单地增加等待时间,用以下命令:如果在运行循环时超出等待时间,如何发送刷新?

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

不过,我注意到,仅仅增加了等待时间,因为网站简单的获取有时冻结不解决问题,解决它的唯一途径是通过提神。所以,我想知道如果超过等待时间是否有刷新浏览器的方法?

+0

'remDr $ refresh()'? – Psidom

+0

@Psidom,我知道这个功能。但是我需要的是在运行循环时发生错误时发送刷新。 –

+0

我没有足够的exp在r中,但在java中,我可以用另一种方式做到这一点....我可以与你分享这个,如果你可以将其转换为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)