我想编写一个函数,该函数可以使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文档与浏览器中的不同。
如何修复此功能?