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

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

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

總的結果來講,selenium3.0不支持firefox默認的driver了,可是在selenium2.x版本是能夠支持的,這就是差別,github

http://www.assertselenium.com/selenium-3/firefoxdriver-in-selenium-3/地址咱們能夠獲取到咱們想要的信息web

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

---------------------------------------------------------------------------------------------------------------------函數

以上爲分析廢話,具體步驟以下:測試

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

   記住根據本身電腦的環境來下載哦spa

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

③ 接着想使用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)

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

相關文章
相關標籤/搜索