Selenium+Python瀏覽器調用:IE


IE瀏覽器調用

IE瀏覽器驅動添加

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

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

IE瀏覽器的調用

#coding=utf-8
from selenium import webdriver

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

說明:

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

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

3、【driver=webdriver.Ie()】這里將控制webdriver的Ie賦值給driver,通過driver獲得瀏覽器操作對象,后就可以啟動瀏覽器、打開網址、操作對應的頁面元素了。

若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()

說明:

1、 os.environ["webdriver.ie.driver"]是設置IEDriver的環境變量,設置為實際的IEDriver地址即可。

2、 若為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()

方法二:瀏覽器配置

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

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

2、點擊證書錯誤——查看證書,提示證書無效,則是因為證書不被信息,需要安裝證書

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

4、按向導操作,注意在下列步驟中需要選擇證書位置

5、配置完成后,此時依然是無法登陸的,點擊繼續瀏覽后,彈出的錯誤提示為:不匹配的地址,如下,還需要繼續配置

6、Internnet選項——高級下,去除下圖中標記項的勾,然后保存

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

8、若還是無法登陸,可以在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/


免責聲明!

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



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