python-IE瀏覽器調用

 

IE瀏覽器驅動添加

selenium官網有提供下載http://code.google.com/p/selenium/downloads/listjavascript

這裏我用的是IEDriverServer_Win32_2.43.0.zip,下載後解壓,把IEDriverServer.exe放在python安裝目錄,與python.exe在同一目錄下,便可調用.html

IE瀏覽器的調用

複製代碼
#coding=utf-8
from selenium import webdriver

driver=webdriver.Ie()
url='http://www.baidu.com'
driver.get(url)
driver.close()
複製代碼

說明:java

一、【#coding=utf-8】爲了防止亂碼問題,以便在程序中添加中文註釋,把編碼統一爲UTF-8,注意=兩遍不要留空格,不然不起做用,另外【#_*_coding:utf-8_*_】的寫法也能夠達到相同的做用python

二、【from selenium import webdriver】該步驟是導入selenium的webdriver包,只有導入selenium包,咱們才能使用webdriver API進行自動化腳本的開發web

三、【driver=webdriver.Ie()】這裏將控制webdriver的Ie賦值給driver,經過driver得到瀏覽器操做對象,後就能夠啓動瀏覽器、打開網址、操做對應的頁面元素了。chrome

若IEDriverServer.exe沒有放在python安裝目錄下,而自定義的目錄,如:IE目錄下,則直接使用上述代碼是沒法調用成功的,提示:"IEDriver executable needs to be available in the path. "由於在默認的路徑下,沒法找到IEDriver,因此須要爲webdriver指定指定IEDriver的路徑,以下:瀏覽器

複製代碼
#coding=utf-8
from selenium import webdriver
import os

url='http://www.baidu.com'
iedriver ='C:\IEDriverServer.exe' #iedriver路徑
os.environ["webdriver.ie.driver"] = iedriver #設置環境變量
driver = webdriver.Ie(iedriver)
driver.get(url)
driver.close()
複製代碼

說明:安全

一、 os.environ["webdriver.ie.driver"]是設置IEDriver的環境變量,設置爲實際的IEDriver地址便可。ide

二、 若爲chrom瀏覽器,則參數爲:os.environ["webdriver.chrome.driver"]測試

關於https網站調用失敗處理

上面介紹了,調用IE來打開對應的網頁問題,可是在實際測試中,有些網站是採用https協議的,這時候IE瀏覽器會彈出以下窗口,通常手動選擇後,纔可進入登陸界面,而在webdriver調用瀏覽器後,沒法繼續操做,那麼該如何解決呢?

方法一:代碼增長配置

首先,咱們能夠能夠查看該網頁的源碼,分析下代碼,能夠看到下面部分信息:

<h4 id="continueToSite">

<img src="red_shield.png" ID="ImgOverride" border="0" alt="不推薦圖標" class="actionIcon">

<A href='' ID="overridelink" NAME="overridelink" >繼續瀏覽此網站(不推薦)。 </A>

</h4>

述標記部分的,則是上圖標記的地方,通常咱們點擊該圖標後便可進入登陸窗口,下面代碼中經過調用javascript來操做瀏覽器的提示框,來跳過該提示便可:

複製代碼
#coding=utf-8
from selenium import webdriver

driver=webdriver.Ie()
firsturl='https://172.172.110.8/Terminal/logon.do'
driver.get(firsturl)
driver.get("javascript:document.getElementById('overridelink').click();")#解決IE提示問題
driver.close()
複製代碼

方法二:瀏覽器配置

方法二則是經過配置瀏覽器的方法,解決證書問題,方法以下:

一、點擊【繼續瀏覽此網頁】後進入登陸窗口,此時地址欄後面會出現【證書錯誤】提示

二、點擊證書錯誤——查看證書,提示證書無效,則是由於證書不被信息,須要安裝證書

三、彈出證書界面,選擇安裝證書

四、按嚮導操做,注意在下列步驟中須要選擇證書位置

五、配置完成後,此時依然是沒法登錄的,點擊繼續瀏覽後,彈出的錯誤提示爲:不匹配的地址,以下,還須要繼續配置

六、Internnet選項——高級下,去除下圖中標記項的勾,而後保存

七、從新打開地址,此時仍然會彈出提示,選擇繼續瀏覽後,會發現上方的地址欄變爲一個小鎖,如右圖,說明已經配置OK,後續在打開該地址就不會彈出錯誤選項了。

八、若仍是沒法登錄,能夠在Internet選項—安全中:設置安全等級爲低等級,並在高級選項下,將下屬五項所有勾選後重啓瀏覽器便可

關於調用IE瀏覽器的錯誤處理

運行過程當中若是出現錯誤:WebDriverException: Message: u'Unexpected error launching Internet Explorer.  Protected Mode settings are not the same for all zones. Enable Protected  Mode must be set to the same value (enabled or disabled) for all zones.

解決方法

更改IE的internet選項->安全,將Internet/本地Internet/受信任的站定/受限制的站點中的啓用保護模式所有去掉勾,或者所有勾上

參考資料

[1] 證書錯誤 導航已阻止 沒法跳轉 最終解決,

http://jingyan.baidu.com/article/cbf0e5008af1392eaa2893cf.html

[2] webdriver+python 對三大瀏覽器的支持,

http://blog.163.com/yang_jianli/blog/static/1619900062014102833427464/

相關文章
相關標籤/搜索