ubuntu 16.04 搭建python+selenium+firefox環境
1.搭建web自動化環境需要對應版本的firefox,selenium以及瀏覽器驅動,三者對應關係可查詢https://github.com/mozilla/geckodriver/releases/
2.經過樓主測試以及查閱資料發現firefox 48以下的版本不需要安裝驅動 對應selemium2,我們也知道Ubuntu是自帶firefox。目前,我刷出的系統firefox也是45.0.2的版本,系統資訊如下:
[email protected]:~$ uname -a
Linux pi-ThinkPad-X220 4.4.0-21-generic #37-Ubuntu SMP Mon Apr 18 18:34:49 UTC 2016 i686 i686 i686 GNU/Linux
NAME=“Ubuntu”
VERSION=“16.04 LTS (Xenial Xerus)”
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME=“Ubuntu 16.04 LTS”
VERSION_ID=“16.04”
HOME_URL=“http://www.ubuntu.com/”
SUPPORT_URL=“http://help.ubuntu.com/”
BUG_REPORT_URL=“http://bugs.launchpad.net/ubuntu/”
UBUNTU_CODENAME=xenial
3.也可以更換軟體源下載火狐瀏覽器
1)sudo apt-cache madison firefox–檢視各個源安裝的firefox版本
2)sudo nano /etc/apt/sources.list–編輯源
3)sudo apt-get update–更新源
4)sudo apt-get install firefox–下載對應源的火狐,然後檢視火狐版本
4.pip安裝selenium以及相關類庫
1)安裝pip:sudo apt-get install python-pip python-dev build-essential
2)sudo -H pip install pyvirtualdisplay
3)sudo -H pip install selenium==2.53.1
5.測試程式碼
from selenium import webdriver
from pyvirtualdisplay import Display
from selenium.webdriver.support.ui import WebDriverWait
class webControl:
url = r'http://www.baidu.com'
def testDemo():
try:
# 相當於畫布承載網頁
display = Display(visible=0, size=(800, 600))
display.start()
print('當前正在訪問: %s' % url)
driver = webdriver.Firefox()
# 設定網頁載入報錯時間
driver.set_page_load_timeout(15)
current_time = float(time.time())
driver.get(url)
openweb_time = float(time.time()) - current_time
# 網頁標題,用於判斷網頁是否開啟
str = driver.title
except:
str = ''
finally:
if "百度一下" in str:
print('開啟網頁的時間為:%ss' % ((i + 1), openweb_time))
else:
print('開啟網頁失敗')
display.stop()
driver.quit()
if __name__ == '__main__':
webControl.testDemo()
當然,你也可以直接在終端裡測試!