如何让硒等待页面完全渲染?

时间:2018-11-13 16:28:25

标签: javascript python html selenium

我想编写一个函数,该函数可以使selenium等到任何给定的url被完全呈现。我发现了很多使用显式等待的现有答案,这在这里不起作用。我想为所有网址提供一些常规功能。

我尝试过的是:

def get_html_doc(driver, url):
    wait = WebDriverWait(driver, 30) #  30 is the max wait time
    driver.get(url)
    wait.until(lambda driver: 
               driver.execute_script("return (typeof jQuery === 'undefined' || jQuery.active == 0)" 
                                     " && (typeof window.angular == 'undefined'"
                                     " || angular.element(document).injector() === 'undefined)'"
                                     " && document.readyState === 'complete'"))
    return str(driver.find_element_by_xpath("/html/body").get_attribute("outerHTML"), "lxml")

这个想法是我分别检查jquery,angular和jsp的状态(如果有)。 但是,当使用此功能作为url时,以下网址为https://stores.sainsburys.co.uk/list/place/@51.5073509,-0.12775829999998223/1/all,我从此功能获得的html文档与浏览器中的不同。

如何修复此功能?

0 个答案:

没有答案