在Ubuntu 14.04.5 LTS上安装python模块selenium 3实录

本文详细介绍了如何在Ubuntu系统上安装Selenium3.0,并正确配置ChromeDriver和geckodriver驱动,以实现对Chrome和Firefox浏览器的自动化测试。同时,提供了常见错误的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介

Selenium是python模块库中一组web自动化测试工具集,提供多种语言的API,例如java,python,ruby,.net等,支持Firefox,Chrome,IE,Safari 等多种浏览器,但是它驱动浏览器运行需要有专门的驱动程序。当驱动程序与浏览器的版本不匹配是就会报错。所以下载驱动一定要注意版本的匹配问题。

Selenium2.0和selenium3.0的到底选择哪个?
Selenium3.0 相较于selenium 2.0 API没有变化,主要增加了如下特性:

支持Mac OS,支持官方的Safaridriver
通过微软官方的webdriver server支持Edge浏览器
只支持IE 9.0版本以上
通过Mozilla官方的geckodriver来支持Firefox。
综上,selenium3.0支持的浏览器版本更多,所以建议选择selenium3.0

安装selenium
sudo pip install selenium

由截图可以看出,在Ubuntu 16.04.5 LTS上安装的是selenium 3版本。

下面查看我Ubuntu 16.04.5 LTS上安装的Chrome和Firefox的版本号,以便下面安装合适的驱动版本

如果想使用Chrome则需要安装驱动,可以在下面的网址下载

http://chromedriver.storage.googleapis.com/index.html

安装ChromeDriver
sudo apt-get install unzip

wget -N hhttp://chromedriver.storage.googleapis.com/71.0.3578.80/chromedriver_linux64.zip
unzip chromedriver_linux64.zip
cp -f chromedriver /usr/bin/
chmod +x chromedriver
在运行过程中ChromeDriver会与Chrome浏览器不兼容,重新下载ChromeDriver地址,替换旧ChromeDriver即可。

安装Firefox对应的geckodriver
selenium3.x开始,webdriver/firefox/webdriver.py的init中,executable_path=”geckodriver”; 
而2.x是executable_path=”wires”; 
所以需要自己配置geckodriver; 
下载地址:

https://github.com/mozilla/geckodriver/releases 
下载后(根据系统版本选择):

wget https://github.com/mozilla/geckodriver/releases/download/v0.23.0/geckodriver-v0.23.0-linux64.tar.gz

tar zxvf geckodriver-v0.23.0-linux64.tar.gz
解压出来,放到系统目录下面
cp -f geckodriver /usr/bin/
chmod +x geckodriver

测验验证

下面的代码基于python 2.7并以作验证。

#!/usr/bin/env python
#encoding: utf-8
#description: 测试是否可以正常驱动Chrome
#note: 需要安装Selenium3,chromedriver等才能正常驱动同版本的Chrome浏览器
#date: 2019-01-03
        
        
from selenium import webdriver
import time
        
        
if __name__ == '__main__':
    driver = webdriver.Chrome()
    driver.get('https://www.baidu.com')
        
    #在百度主页上搜索关键词Selenium
    driver.find_element_by_id('kw').send_keys('Selenium3')
    driver.find_element_by_id('su').click()
    #此处休眠一下再关闭Chrome窗口退出
    time.sleep(3)
    driver.quit()
        
    #开启火狐浏览器
    browser = webdriver.Firefox()
    browser.get('https://news.sohu.com')                                                                                                                                 
    time.sleep(3)
    browser.quit()

在命令行运行

python selenium_demo.py

正常情况下,本脚本会先自动打开chrome浏览器,打开百度网页,输入关键词“kw”,并显示搜索结果,3秒后关闭chrome;然后再打开火狐浏览器,打开搜狐新闻主页,3秒后关闭。下面是看到的结果的截图:

 

遇到的问题

1.运行火狐时报如下错误

selenium.common.exceptions.WebDriverException: Message: ‘geckodriver’ executable needs to be in PATH.

解决方法:

见上面的方法,去http://docs.seleniumhq.org/download/下载geckodriver最新版,解压并复制到指定目录/usr/bin/下面。


参考文献
[1].https://www.jianshu.com/p/71bbe8acee01
[2].https://www.cnblogs.com/titicia/p/6036572.html
[3].https://blog.youkuaiyun.com/qq_41797451/article/details/80272748

[4].https://blog.youkuaiyun.com/qq471011042/article/details/79514908

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值