而不是使用:
Sys.sleep(5)
要等待 dom 加载,是否需要等待此命令
document.readyState
给出结果“完整”
,这样dom就准备好了
最佳答案
Selenium 已经通过超时方法集实现了对 document.readyState
的轮询。 RSelenium
具有 setTimeout
方法。增加页面加载
的超时应该会导致Selenium允许更多时间来完成操作。
当网页未完成加载时就会出现问题。某些网页不断加载,并有延迟。在这种情况下,您可以检查 DOM 中是否存在元素。
参见
How I can check whether a page is loaded completely or not in web driver?
和
Selenium WebDriver : Wait for complex page with JavaScript(JS) to load
进一步讨论。使用 RSelenium
,您当然可以运行 JavaScript,例如
remDr$executeScript("return document.readyState == 'complete';")
对于现代网页,检测页面加载何时被视为已完成的问题可能会出现问题,并且解决方案取决于具体情况。
关于r - 文档在 RSelenium 中完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39556388/