selenium3.0不兼容火狐的解決方案


當直接調用火狐出現不兼容錯誤時,如何解決?

詳看Message中提示:Expected browser binary location,but unable to find binary in default location,大概意思就是說尋找不到binary。

總的結果來說,selenium3.0不支持firefox默認的driver了,但是在selenium2.x版本是可以支持的,這就是差異,

http://www.assertselenium.com/selenium-3/firefoxdriver-in-selenium-3/地址我們可以獲取到我們想要的信息

依據如上的信息,可以看到,selenium3.0在firefox瀏覽器中提供了GeckDriver,需要使用它,也就是說之前的默認自帶的driver在selenium30.已經不能使用了,需要使用GeckDriver,GeckDriver代替了之前的自帶默認的driver,這樣的好處是每個瀏覽器都可以自己開發driver,來適配selenium3.0來進行自動化的測試,接着繼續往下看,可以看到,提供了GeckDriver的下載地址,見原文

---------------------------------------------------------------------------------------------------------------------

以上為分析廢話,具體步驟如下:

①下載GeckDriver    https://github.com/mozilla/geckodriver/releases

   記住根據自己電腦的環境來下載哦

② 把GeckDriver在該地址下載后,解壓得到geckodriver.exe文件,把它加入到環境變量 (如我放在之前設置好的環境變量目錄 c:\python35)

③ 接着想使用GeckoDriver ,firefox瀏覽器必須是48或者更高版本。於是升級firefox,保障瀏覽器版本在48或者更高

④ 升級后,把binary加入進去,就可以正常的運行了,見執行的源碼:

#  -*- coding:utf-8 -*-

from selenium import webdriver     #導入webdriver包
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary   #導入friefox webdriver 包
import  time  #調入time函數

binary = FirefoxBinary("C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe")    #加入Firefox的路徑
driver =webdriver.Firefox(firefox_binary=binary)    #### 定義driver 要操控火狐瀏覽器 webdriver.firefox

driver.get("http://www.baidu.com")
time.sleep(0.3)  #休眠0.3秒
driver.find_element_by_id("kw").send_keys("selenium")
####一個控件有若干屬性id 、name、(也可以用其它方式定位),百度輸入框的id 叫kw  我要在輸入框里輸入 selenium 。
driver.find_element_by_id("su").click()
####搜索的按鈕的id 叫su ,我需要點一下按鈕( click() )。
time.sleep(3)  # 休眠3秒
print(driver.title)  # 把頁面title 打印出來    當沒看到整個腳本執行過程時,看到打印出這句話,就說明頁面被正確打開了
driver.quit()  #退出並關閉窗口的每一個相關的驅動程序 類似的表弟為 driver.close()
# driver.close()     #關閉當前窗口

------------------分析一下------------------------------

1.增加多了一句     from selenium.webdriver.firefox.firefox_binary import FirefoxBinary

2.增加Firefox的路徑

3.原來的直接調用driver=webdriver.firefox() 變成了  driver =webdriver.Firefox(firefox_binary=binary)

好了,解決掉以上問題 配置環境調用瀏覽器問題應該就完全解決了吧。 


免責聲明!

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



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