单击按钮后的Python驱动程序.get_page_source



Python脚本获取页面并单击导致重新加载主页内容的按钮。然后我尝试获取重新加载页面的页面源,但仍然具有第一个页面的内容。也许它应该以某种方式刷新。

driver = webdriver.Chrome(ChromeDriverManager().install())
driver.get(base_listing_url)
time.sleep(10)
driver.find_element_by_css_selector('.fTomoL').click()
time.sleep(10)
print(driver.page_source) #This returns the first page's content

您需要等待新页面的WebElement在HTML DOM中呈现,您可以调整以下任何方法:

您可以等待页面标题更改:

driver.find_element_by_css_selector('.fTomoL').click()
# wait till the page title contains the word Facebook
WebDriverWait(driver, 10).until(EC.title_contains("Facebook"))
print(driver.page_source)

您可以等待可见元素可见:

driver.find_element_by_css_selector('.fTomoL').click()
# wait till the page title contains the word Facebook
WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//h2[text()='Some Heading']")))
print(driver.page_source)

参考文献

您可以在中找到一些相关的详细讨论

  • 如何让selenium在通过IEDriverServer和IE从登录页后加载的实际网站获取内容之前等待
  • Python+Selenium:等待元素完全加载

最新更新