而不是使用:
Sys.sleep(5)
等待dom加载是否等待这个命令等待
document.readyState
给出结果"complete"
,以便dom准备就绪
答案 0 :(得分:3)
Selenium已经通过超时方法集实现document.readyState
的轮询。 RSelenium
具有setTimeout
方法。增加page load
的超时应该会导致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';")
对于现代网页,检测页面加载何时被视为已完成的问题可能会出现问题,并且解决方案具体情况。