The webdriver can wait for a page to load by default via .get() method.
As you may be looking for some specific element as @user227215 said, you should use WebDriverWait to wait for an element located in your page:
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.common.exceptions import TimeoutException
browser = webdriver.Firefox()
delay = 3 # seconds
myElem = WebDriverWait(browser, delay).until(EC.presence_of_element_located((By.ID, 'IdOfMyElement')))
print "Page is ready!"
print "Loading took too much time!"
I have used it for checking alerts. You can use any other type methods to find the locator.
I ought to mention that the webdriver will wait for a page to load by default. It doesn't wait for loading within frames or for Ajax requests. It means when you use .get('url'), your browser will wait until the page is completely loaded and then go to the next command in the code. But after you are posting an Ajax request, webdriver does not wait and it's your responsibility to wait an appropriate amount of time for the page or a part of page to load; therefore there's a module named expected_conditions.