【发布时间】:2017-11-14 04:10:45
【问题描述】:
当页面使用AJAX时可以使用隐式和显式等待,但是我想在加载足够的元素时停止由driver.get()引起的加载。是否可以这样做,因为 driver.get() 调用仅在页面加载完成时返回。
【问题讨论】:
-
现在你为什么要这样做,假设你等待一个按钮显示。一旦按钮显示你做任何你想做的事,它不会等待页面完全加载后再执行你的命令,除非你有其他原因,否则它是没用的。
-
@ElvirMuslic 但是对 driver.get() 的调用仅在页面完全加载完成时返回。就像我想在按钮可见时以编程方式单击该按钮,而不是等待整个页面加载。
-
并非如此,driver.get() 只是发出它不等待元素加载的请求。如果您说 driver.something.click() 它会在收到有关页面的任何响应后立即执行它,如果元素不存在,它将引发错误。意思是, 1.driver.get() 等待来自页面的任何响应(不是全部)。 2. 您可以执行任何您想要的操作,并且页面不必完全加载,但它会在您执行这些操作时加载。 3.我猜这可以用来节省时间和使用量(对于大型项目)
-
@ElvirMuslic 作为 Florent 的回答,driver.get() 只有在页面加载策略设置为 none 时才等待页面加载。