通過selenium webdriver操作網頁前進、后退、刷新、最大化、獲取窗口位置、設置窗口大小、獲取頁面title、獲取網頁源碼、獲取Url等基本操作
from selenium import webdriver driver = webdriver.Ie(executable_path = "e:\\IEDriverServer") #打開瀏覽器 driver.get("http://wenku.baidu.com") #輸入網址 driver.back() #向后退 driver.forward() #向前進 driver.refresh() #刷新頁面 driver.set_page_load_timeout(2) #設置超時等待的時間,超過不再等待 try: #捕獲超時異常 driver.get("http://www.sohu.com") ... except Exception,e: ... print e ... Message: Timed out waiting for page to load. driver.maximize_window() #窗口最大化 driver.get_window_position() #獲取坐標位置 {'y': -8, 'x': 1672} driver.name #判斷使用的瀏覽器 u'internet explorer' driver.set_window_position(y=200, x=400) #設置瀏覽器坐標 #y:指的上下走,屏幕最頂部y=0 ;x:指的左右走 ,最左邊x=0,不再當前屏幕的會出現負數 #瀏覽器最大化的狀態再去設置坐標就不起作用了 driver.get_window_position()['x'] #獲取x軸的位置 2335 driver.get_window_position()['y'] #獲取y軸的位置 98 driver.get_window_size() #獲取瀏覽器的窗體大小 {'width': 160, 'height': 32} driver.get_window_size()['width'] #獲取瀏覽器的寬度 160 driver.get_window_size()['height'] #獲取瀏覽器的高度 32 driver.set_window_size(100,200) #設置瀏覽器的窗體大小 print driver.title #獲取頁面title,可以用於做斷言看打開的頁面對不對 搜狐 assert u"搜狐" == driver.title #斷言標題是否正確 assert u"搜狐2" == driver.title #斷言標題出錯 Traceback (most recent call last): File "<stdin>", line 1, in <module> AssertionError driver.page_source() #獲取網頁源碼,返回的其實是unicode字符串 #抓取頁面源碼時,webdriver可以觸犯頁面上的js動態數據,但是它的缺點是比較慢;之前講過的 #request抓取源碼快,但只適用於靜態頁面,無法抓取js的動態頁面內容 #抓取源碼是非常重要的,可以隨意操作 driver = webdriver.Ie(executable_path = "e:\\IEDriverServer") driver.get("http://www.iciba.com") driver.page_source[:50] #獲取第50行的頁面源碼 u'<html><head><style></style><avalon class="avalonHi' u"熱門詞匯" in driver.page_source #判斷指定字段是不是在頁面源碼中存在 True driver.page_source.encode("gbk","ignore") #將頁面源碼轉碼成中文,加ignore避免無法識別的生僻 字報錯 html=driver.page_source.encode("gbk","ignore") #將頁面源碼轉成html文件 >>> with open("e:\\1.html","w"): ... pass ... >>> with open("e:\\1.html","w") as fp: ... fp.write(html) ... driver.current_url #獲取當前頁面的url u'http://www.iciba.com/