目前做selenium自動化使用的主流語言分為java和python,前一篇為java版,本篇介紹python實現selenium啟動Firefox。
1 #-*- coding:utf-8 -*- 2 3 from selenium import webdriver 4 from selenium.common.exceptions import NoSuchElementException, TimeoutException 5 from selenium.webdriver.remote.webelement import WebElement 6 from selenium.webdriver.support.ui import WebDriverWait # available since 7 from selenium.webdriver.common.keys import Keys 8 9 from time import sleep 10 import os, time 11 12 # driver = webdriver.Chrome("D:\Downloads\chromedriver.exe") 13 driver = webdriver.Firefox() 14 print u"加載驅動完成.." 15 driver.get("https://ww.baidu.com") # 加載頁面 16 print u"加載頁面完成.." 17 18 sleep(1) 19 20 try: 21 assert u"百度一下" in driver.title 22 print ('Assertion baidu title pass.') 23 24 elements = driver.find_elements_by_tag_name("input") 25 26 for e in elements: 27 if e.get_attribute("type")=="text": 28 print e.text 29 e.send_keys("123456") 30 # print e.tag_name 31 # print e.location 32 except Exception as e: 33 print ('Assertion baidu title fail.', format(e)) 34 35 driver.maximize_window() # 瀏覽器全屏顯示 36 driver.close()
注意:可能會遇到一些報錯
1. geckodriver.exe沒有放到python安裝目錄下,這一類報錯。
2. python demo.py 執行后,找不到文件,說明沒有通過cd命令切換到demo.py所在的文件夾路徑。
3.打開火狐瀏覽器了,但是沒有獲取到url地址
4.火狐瀏覽器打開且進入百度網頁后關閉火狐瀏覽器時,提示瀏覽器遇到一個錯誤,停止運行了
針對 問題 3、4,我這邊是通過降低Firefox瀏覽器的版本(如果遇到一下這類問題或相關瀏覽器調用問題,可升級或降低 selenium 和 firefox 的版本 進行兼容)
總結:
通過上面代碼,和本文,基本了解了如何打開和關閉瀏覽器。如果想打開IE或者Chrome瀏覽器,也需要下載對應瀏覽器的driver.exe文件
① 在chrome 下運行腳本,需要將chromedriver.exe 放在chrome瀏覽器安裝目錄下
(同時設置用戶環境變量path:C:\Users\xxxxxx\AppData\Local\Google\Chrome\Application;)
②2 在ie 下運行腳本,需要將IEDriverServer.exe 放在ie瀏覽器安裝目錄下
(同時設置用戶環境變量path:C:\Program Files\Internet Explorer ),如果在調用瀏覽器遇到瀏覽器保護模式問題,可打開Ie瀏覽器–工具–Internet選項–安全–internet/本地intarnet/受信任的站點/受限制站點中的 啟用保護模式全部勾選或者全部不選的勾去掉
③ 在firefox下運行腳本,直接調用(默認Python安裝路徑下,例如我的路徑為:D:\Program Files (x86)\Python36\geckdriver.exe)
