Selenium 一自動化測試工具。它支持 Chrome,Safari,Firefox 等主流界面式瀏覽器,如果你在這些瀏覽器里面安裝一個 Selenium 的插件,那么便可以方便地實現Web界面的測試。
所以呢,你要用Selenium你必須得先有個瀏覽器(大多數人沒說這點,略坑!),無論是Chrome也好,Firefox也好,你必須得有一個。
安裝完瀏覽器了,抱着愉快的心情用pip3安裝了Selenium,在Pyhton交互模式中直接導入Webdriver,創建Webdriver對象報如下錯誤:
1
|
No such
file
or
directory:
'geckodriver'
|
這上什么鬼?原來還需要安裝瀏覽器的驅動文件。。。。。。。,下載頁面如下,
1
|
https:
/
/
github.com
/
SeleniumHQ
/
selenium
/
blob
/
master
/
py
/
docs
/
source
/
index.rst
|
記得要下載對應的驅動,Chrome不能用Firefox,Firefox也不能用Chrome的,如果驅動版本錯了,會報無法執行的錯誤,如下
1 OSError: [Errno 8] Exec format error
為何不弄一個所有驅動在一起的?搞不明白。
將下載的驅動文件解壓到/usr/bin,或/usr/local/bin下面,也就你的環境變量里在, 如何你直接修改PATH,我認為也是可以的,只要能找到就好了。
到這了,感覺應該可以了吧,不行的,創建對象是沒問題了,但是一訪問URL,又報錯了。。。。。
1
|
geckodriver.log Error: GDK_BACKEND does
not
match available displays
|
從geckodriver.log中看到的報錯信息,需要一個顯示,本來想命令行用,但是卻提示需要一個匹配的顯示。經過去谷歌搜索得到,需要創建虛擬的顯示器。
安裝如下軟件來創建:
yum install Xvfb libXfont xorg-x11-fonts* pip3 install pyvirtualdisplay
跳出這些坑,總算是可以正常使用了,測試代碼如下:
1 from selenium import webdriver 2 from pyvirtualdisplay import Display 3 4 5 display = Display(visible=0, size=(800,600)) 6 display.start() 7 driver = webdriver.Firefox() 8 driver.get("http://www.baidu.com") 9 print driver.page_source
selenium.common.exceptions.WebDriverException: Message: Unable to find a matching set of capabilities
升級火狐瀏覽器與selenlum版本一致