title: Splinter or Selenium: Can we get current html page after clicking a button?
body: <p>I'm trying to crawl the website "<a href="http://everydayhealth.com" rel="noreferrer">http://everydayhealth.com</a>". However, I found that the page will dynamically rendered. So, when I click the button "More", some new news will be shown. However, using splinter to click the button doesn't let "browser.html" automatically changes to the current html content. Is there a way to let it get newest html source, using either splinter or selenium? My code in splinter is as follows:</p>
  
  <pre><code>import requests
  from bs4 import BeautifulSoup
  from splinter import Browser
  
  browser = Browser()
  browser.visit('http://everydayhealth.com')
  browser.click_link_by_text("More")
  
  print(browser.html)
  </code></pre>
  
  <hr>
  
  <p>Based on @Louis's answer, I rewrote the program as follows:</p>
  
  <pre><code>from selenium import webdriver
  from selenium.webdriver.support.ui import WebDriverWait
  
  driver = webdriver.Firefox()
  driver.get("http://www.everydayhealth.com")
  more_xpath = '//a[@class="btn-more"]'
  more_btn = WebDriverWait(driver, 10).until(lambda driver: driver.find_element_by_xpath(more_xpath))
  more_btn.click()
  more_news_xpath = '(//a[@href="http://www.everydayhealth.com/recipe-rehab/5-herbs-and-spices-to-intensify-flavor.aspx"])[2]'
  WebDriverWait(driver, 5).until(lambda driver: driver.find_element_by_xpath(more_news_xpath))
  
  print(driver.execute_script("return document.documentElement.outerHTML;"))
  driver.quit()
  </code></pre>
  
  <p>However, in the output text, I still couldn't find the text in the updated page. For example, when I search "Is Milk Your Friend or Foe?", it still returns nothing. What's the problem?</p>