Selenium WebDriver-網頁的前進、后退、刷新、最大化、獲取窗口位置、設置窗口大小、獲取頁面title、獲取網頁源碼、獲取Url等基本操作


通過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/ 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM