pythonselenium教程(如何搭建Python3.4+Selenium)

本文目录
- 如何搭建Python3.4+Selenium
- 关于Python的Selenium框架全解,一篇完整的说明书
- 用python写爬虫程序怎么调用工具包selenium
- 从零开始学python爬虫(八):selenium提取数据和其他使用方法
- 基于python 的怎么安装selenium rc
- 如何在python中使用selenium
- 如何搭建python+selenium开发环境教程讲解
如何搭建Python3.4+Selenium
详细步骤:
1.下载32位的python3.4 ,安装,注意在安装过程中,选择pip
2.添加系统环境变量
C:\Python34;C:\Python34\Scripts;C:\Program Files\Google\Chrome\Application(后面会用到)
3.使用pip命令,安装selenium
cd Python34
然后输入: pip install -U selenium
安装成功后,显示:
Runing setup.py install foe selenium
Successfully installed selenium-2.48.0
4.检测selenium是否安装成功。
在Python的IDLE中,输入:
from selenium import webdriver
如果没有报错,则selenium安装成功。
5.开始第一个程序
from selenium import webdriver
driver = webdriver.Chrome()
***隐藏网址***
driver.find_element_by_id(“kw”).send_keys(“自动化测试”)
按F5运行,然后会自动打开百度网页。
能够顺利安装,那是幸运的,但是更多时候,总因为各种原因导致安装过程不太顺利。
下面将安装过程中遇到的问题,总结在此:
issue 1:
使用pip 命令安装结束后,加载selenium模块报错。
from selenium import webdriver
报错:
File “pyshell#0”, line 1, in
import selenium
File “C:\Python34\selenium.py”, line 1, in
from selenium import webdriver
ImportError: cannot import name ‘webdriver’
Traceback (most recent call last):
File “pyshell#0”, line 1, in
import selenium
File “C:\Python34\selenium.py”, line 1, in
from selenium import webdriver
百度了很多方法,仍无解。
解决方法: 最后换了版本,将64位python3.4 改为32位的python3.4
再次重新安装,成功。
issue 2:
使用browser=webdriver.Chorme() 报错。
报错:
Error message: “’chromedriver’ executable needs to be available in the path”
这是因为缺少驱动:Chromedriver.exe
下载Chormedriver.exe
注意安装Chromedriver.exe要与PC所安装的Chrome版本匹配。
解决方法:下载安装ChromeDrvier.exe 将ChromeDrvier.exe 放到C:\Python34\Scripts\
OVER
关于Python的Selenium框架全解,一篇完整的说明书
目录
安装 selenium 第三方库
下载浏览器驱动:
需要把这些浏览器驱动放入 Python 应用目录里面的 Script 文件夹里面
① 200 多本 Python 电子书(和经典的书籍)应该有
② Python标准库资料(最全中文版)
③ 项目源码(四五十个有趣且可靠的练手项目及源码)
④ Python基础入门、爬虫、网络开发、大数据分析方面的视频(适合小白学习)
⑤ Python学习路线图(告别不入流的学习)
私信我01即可获取大量Python学习资源
每次当selenium启动chrome浏览器的时候,chrome浏览器很干净,没有插件、没有收藏、没有 历史 记录,这是因为selenium在启动chrome时为了保证最快的运行效率,启动了一个裸浏览器,这就是为什么需要配置参数的原因,但是有些时候我们需要的不仅是一个裸浏览器
selenium启动配置参数接收是ChromeOptions类,创建方式如下 :
创建了ChromeOptions类之后就是添加参数,添加参数有几个特定的方法,分别对应添加不同类型的配置项目
常用配置参数:
其他配置项目参数
制作无头浏览器
规避检测
门户网站检测如果是selenium请求的,有可能会拒绝访问。这也是一种反爬机制
实现规避检测
注意:这里只能使用 options 添加
如果有其他的模块要添加,注意要分开添加
元素定位语法
常用语法:
在 element 变成 elements 时,返回符合条件的所有元素组成的数组
控制浏览器大小
浏览器后退,前进
刷新
在搜索框模拟回车操作
在 WebDriver 中, 将这些关于鼠标操作的方法封装在 ActionChains 类提供
ActionChains 类提供了鼠标操作的常用方法:
语法:
想使用selenium中的键盘事件,首先我们必须导入Keys包,需要注意的是包名称Keys首字母需要大写。Keys类中提供了几乎所有的键盘事件包括组合按键如 Ctrl+A、 Ctrl+C 等
使用语法:
其他事件可以通过查看源码获取
显式等待使WebdDriver等待某个条件成立时继续执行,否则在达到最大时长时抛出超时异常
实例:
WebDriverWait类是由WebDirver 提供的等待方法。在设置时间内,默认每隔一段时间检测一次当前页面元素是否存在,如果超过设置时间检测不到则抛出异常
语法:
参数:
如果某些元素不是立即可用的,隐式等待是告诉WebDriver去等待一定的时间后去查找元素。 默认等待时间是0秒,一旦设置该值,隐式等待是设置该WebDriver的实例的生命周期
案例
语法:
alert 里面的方法
WebDriver操作cookie的方法:
***隐藏网址***
与普通的在headers里添加 {’Cookies’:’ ’} 不一样的是,此方法需要按照cookie的name,value,path,domain格式逐个cookie添加
通过execute_script()方法执行JavaScripts代码来移动滚动条的位置
用python写爬虫程序怎么调用工具包selenium
一、什么是Selenium
selenium 是一套完整的web应用程序测试系统,包含了测试的录制(selenium IDE),编写及运行(Selenium Remote Control)和测试的并行处理(Selenium Grid)。Selenium的核心Selenium Core基于JsUnit,完全由JavaScript编写,因此可以用于任何支持JavaScript的浏览器上。
selenium可以模拟真实浏览器,自动化测试工具,支持多种浏览器,爬虫中主要用来解决JavaScript渲染问题。
二、selenium基本使用
用python写爬虫的时候,主要用的是selenium的Webdriver,我们可以通过下面的方式先看看Selenium.Webdriver支持哪些浏览器
执行结果如下,从结果中我们也可以看出基本山支持了常见的所有浏览器:
这里要说一下比较重要的PhantomJS,PhantomJS是一个而基于WebKit的服务端JavaScript API,支持Web而不需要浏览器支持,其快速、原生支持各种Web标准:Dom处理,CSS选择器,JSON等等。PhantomJS可以用用于页面自动化、网络监测、网页截屏,以及无界面测试
声明浏览器对象
上面我们知道了selenium支持很多的浏览器,但是如果想要声明并调用浏览器则需要:
from selenium import webdriver
browser = webdriver.Chrome()
browser = webdriver.Firefox()
这里只写了两个例子,当然了其他的支持的浏览器都可以通过这种方式调用
访问页面
from selenium import webdriver
browser = webdriver.Chrome()
browser.get("httidu.com")print(browser.page_source)
browser.close()
上述代码运行后,会自动打开Chrome浏览器,并登陆百度打印百度首页的源代码,然后关闭浏览器
查找元素
单个元素查找
from selenium import webdriver
browser = webdriver.Chrome()
browser.get("bao.com")
input_first = browser.find_element_by_id("q")
input_second = browser.find_element_by_css_selector("#q")
input_third = browser.find_element_by_xpath(’//*’)print(input_first)print(input_second)print(input_third)
browser.close()
这里我们通过三种不同的方式去获取响应的元素,第一种是通过id的方式,第二个中是CSS选择器,第三种是xpath选择器,结果都是相同的。
结果如下:
这里列举一下常用的查找元素方法:
find_element_by_name
find_element_by_id
find_element_by_xpath
find_element_by_link_text
find_element_by_partial_link_text
find_element_by_tag_name
find_element_by_class_name
find_element_by_css_selector
下面这种方式是比较通用的一种方式:这里需要记住By模块所以需要导入
from selenium.webdriver.common.by import By
from selenium import webdriverfrom selenium.webdriver.common.by import By
browser = webdriver.Chrome()
browser.get("obao.com")
input_first = browser.find_element(By.ID,"q")print(input_first)
browser.close()
当然这种方法和上述的方式是通用的,browser.find_element(By.ID,"q")这里By.ID中的ID可以替换为其他几个
多个元素查找
其实多个元素和单个元素的区别,举个例子:find_elements,单个元素是find_element,其他使用上没什么区别,通过其中的一个例子演示:
from selenium import webdriver
browser = webdriver.Chrome()
browser.get("obao.com")
lis = browser.find_elements_by_css_selector(’.service-bd li’)print(lis)
browser.close()
这样获得就是一个列表
当然上面的方式也是可以通过导入from selenium.webdriver.common.by import By 这种方式实现
lis = browser.find_elements(By.CSS_SELECTOR,’.service-bd li’)
同样的在单个元素中查找的方法在多个元素查找中同样存在:
find_elements_by_name
find_elements_by_id
find_elements_by_xpath
find_elements_by_link_text
find_elements_by_partial_link_text
find_elements_by_tag_name
find_elements_by_class_name
find_elements_by_css_selector
元素交互操作
对于获取的元素调用交互方法
from selenium import webdriverimport time
browser = webdriver.Chrome()
browser.get("bao.com")
input_str = browser.find_element_by_id(’q’)
input_str.send_keys("ipad")
time.sleep(1)
input_str.clear()
input_str.send_keys("MakBook pro")
button = browser.find_element_by_class_name(’btn-search’)
button.click()
运行的结果可以看出程序会自动打开Chrome浏览器并打开淘宝输入ipad,然后删除,重新输入MakBook pro,并点击搜索
交互动作
将动作附加到动作链中串行执行
from selenium import webdriverfrom selenium.webdriver import ActionChains
browser = webdriver.Chrome()
url = "ry/try.php?filename=jqueryui-api-droppable"browser.get(url)
browser.switch_to.frame(’iframeResult’)
source = browser.find_element_by_css_selector(’#draggable’)
target = browser.find_element_by_css_selector(’#droppable’)
actions = ActionChains(browser)
actions.drag_and_drop(source, target)
actions.perform()
执行JavaScript
这是一个非常有用的方法,这里就可以直接调用js方法来实现一些操作,
下面的例子是通过登录知乎然后通过js翻到页面底部,并弹框提示
from selenium import webdriver
browser = webdriver.Chrome()
browser.get("u.com/explore")
browser.execute_script(’window.scrollTo(0, document.body.scrollHeight)’)
browser.execute_script(’alert("To Bottom")’)
获取元素属性
get_attribute(’class’)
from selenium import webdriver
browser = webdriver.Chrome()
url = ’hihu.com/explore’browser.get(url)
logo = browser.find_element_by_id(’zh-top-link-logo’)print(logo)print(logo.get_attribute(’class’))
获取文本值
text
from selenium import webdriver
browser = webdriver.Chrome()
url = ’com/explore’browser.get(url)
input = browser.find_element_by_class_name(’zu-top-add-question’)print(input.text)
获取ID,位置,标签名
id
location
tag_name
size
from selenium import webdriver
browser = webdriver.Chrome()
url = ’com/explore’browser.get(url)
input = browser.find_element_by_class_name(’zu-top-add-question’)print(input.id)print(input.location)print(input.tag_name)print(input.size)
Frame
在很多网页中都是有Frame标签,所以我们爬取数据的时候就涉及到切入到frame中以及切出来的问题,通过下面的例子演示
这里常用的是switch_to.from()和switch_to.parent_frame()
import timefrom selenium import webdriverfrom selenium.common.exceptions import NoSuchElementException
browser = webdriver.Chrome()
url = ’oob.com/try/try.php?filename=jqueryui-api-droppable’browser.get(url)
browser.switch_to.frame(’iframeResult’)
source = browser.find_element_by_css_selector(’#draggable’)print(source)try:
logo = browser.find_element_by_class_name(’logo’)except NoSuchElementException: print(’NO LOGO’)
browser.switch_to.parent_frame()
logo = browser.find_element_by_class_name(’logo’)print(logo)print(logo.text)
等待
当使用了隐式等待执行测试的时候,如果 WebDriver没有在 DOM中找到元素,将继续等待,超出设定时间后则抛出找不到元素的异常, 换句话说,当查找元素或元素并没有立即出现的时候,隐式等待将等待一段时间再查找 DOM,默认的时间是0
隐式等待
到了一定的时间发现元素还没有加载,则继续等待我们指定的时间,如果超过了我们指定的时间还没有加载就会抛出异常,如果没有需要等待的时候就已经加载完毕就会立即执行
from selenium import webdriver
browser = webdriver.Chrome()
browser.implicitly_wait(10)
browser.get(’com/explore’)
input = browser.find_element_by_class_name(’zu-top-add-question’)print(input)
显示等待
指定一个等待条件,并且指定一个最长等待时间,会在这个时间内进行判断是否满足等待条件,如果成立就会立即返回,如果不成立,就会一直等待,直到等待你指定的最长等待时间,如果还是不满足,就会抛出异常,如果满足了就会正常返回
from selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as EC
browser = webdriver.Chrome()
browser.get(’.taobao.com/’)
wait = WebDriverWait(browser, 10)
input = wait.until(EC.presence_of_element_located((By.ID, ’q’)))
button = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, ’.btn-search’)))print(input, button)
上述的例子中的条件:EC.presence_of_element_located()是确认元素是否已经出现了
EC.element_to_be_clickable()是确认元素是否是可点击的
常用的判断条件:
title_is 标题是某内容
title_contains 标题包含某内容
presence_of_element_located 元素加载出,传入定位元组,如(By.ID, ’p’)
visibility_of_element_located 元素可见,传入定位元组
visibility_of 可见,传入元素对象
presence_of_all_elements_located 所有元素加载出
text_to_be_present_in_element 某个元素文本包含某文字
text_to_be_present_in_element_value 某个元素值包含某文字
frame_to_be_available_and_switch_to_it frame加载并切换
invisibility_of_element_located 元素不可见
element_to_be_clickable 元素可点击
staleness_of 判断一个元素是否仍在DOM,可判断页面是否已经刷新
element_to_be_selected 元素可选择,传元素对象
element_located_to_be_selected 元素可选择,传入定位元组
element_selection_state_to_be 传入元素对象以及状态,相等返回True,否则返回False
element_located_selection_state_to_be 传入定位元组以及状态,相等返回True,否则返回False
alert_is_present 是否出现Alert
浏览器的前进和后退
back()
forward()
import timefrom selenium import webdriver
browser = webdriver.Chrome()
browser.get(’ww.baidu.com/’)
browser.get(’aobao.com/’)
browser.get(’ww.python.org/’)
browser.back()
time.sleep(1)
browser.forward()
browser.close()
cookie操作
get_cookies()
delete_all_cookes()
add_cookie()
from selenium import webdriver
browser = webdriver.Chrome()
browser.get(’om/explore’)print(browser.get_cookies())
browser.add_cookie({’name’: ’name’, ’domain’: ’www.zhihu.com’, ’value’: ’zhaofan’})print(browser.get_cookies())
browser.delete_all_cookies()print(browser.get_cookies())
选项卡管理
通过执行js命令实现新开选项卡window.open()
不同的选项卡是存在列表里browser.window_handles
通过browser.window_handles就可以操作第一个选项卡
import timefrom selenium import webdriver
browser = webdriver.Chrome()
browser.get(’baidu.com’)
browser.execute_script(’window.open()’)print(browser.window_handles)
browser.switch_to_window(browser.window_handles)
browser.get(’bao.com’)
time.sleep(1)
browser.switch_to_window(browser.window_handles)
browser.get(’hon.org’)
异常处理
这里只进行简单的演示,查找一个不存在的元素
from selenium import webdriverfrom selenium.common.exceptions import TimeoutException, NoSuchElementException
browser = webdriver.Chrome()try:
browser.get(’du.com’)except TimeoutException: print(’Time Out’)try:
browser.find_element_by_id(’hello’)except NoSuchElementException: print(’No Element’)finally:
browser.close()
所有的努力都值得期许,每一份梦想都应该灌溉!
从零开始学python爬虫(八):selenium提取数据和其他使用方法
知识点:
知识点:了解 driver对象的常用属性和方法
注意:最新版本的selenium已经取消了这种格式,取而代之的是:
你要先导入:
然后再:
知识点:掌握 driver对象定位标签元素获取标签对象的方法
代码实现,如下,获取腾讯新闻首页的新闻标签的内容。
知识点:掌握 元素对象的操作方法
参考代码示例:
知识点:掌握 selenium控制标签页的切换
知识点:掌握 selenium控制frame标签的切换
知识点:掌握 利用selenium获取cookie的方法
知识点:掌握 selenium控制浏览器执行js代码的方法
知识点:掌握 手动实现页面等待
知识点:掌握 selenium开启无界面模式
知识点:了解 selenium使用代理ip
知识点:了解 selenium替换user-agent
基于python 的怎么安装selenium rc
1、下载并安装Python
,我使用的是2.7.3的python版本
2、下载并安装setuptools【这个工具是python的基础包工具】
32位系统安装,去这个地址
下载setuptools,对应python下载了2.7的版本(下载后缀是exe的那个文件),然后直接安装
64位系统安装
官网声称.exe版本的不支持64位Windows系统,推荐使用ez_setup.py自动安装
打开 ,把页面上的代码copy一份保存为ez_setup.py
在命令行窗口运行,就可以安装好了
***隐藏网址***
我的解压目录为c:\pip-1.4.1
4、使用CMD命令进入以上解压后的文件夹c:\pip-1.4.1,然后使用
python setup.py install
(1、如果python命令使用不成功,请配置Python环境变量:
A. 首先需要在系统中注册python环境变量:假设python的安装路径为c:\python27,
打开“我的电脑-》属性-》高级-》环境变量-》系统变量”在PATH的值后面追加: " ;c:\python27" (记得加上“;”分号),与前面的值分隔开
上述环境变量设置成功之后,就可以在命令行直接使用python命令。或执行"python *.py"运行python脚本了。
B. 此时,还是只能通过"python *.py"运行python脚本,若希望直接运行*.py,打开另一个环境变量PATHEXT,在值后面追加:
“ ;.PY;.PYM ”
2、报错no module named setuptools 可以下载一个运行ez_setup.py,运行ez_setup.py:python ez_setup.py ;
如果运行正常,那就安装成功了。)
参考图:
***隐藏网址***
(Java环境变量设置可以百度)
6、再打开CMD命令,进入python的Script路径,如本人的C:\Python27\Scripts然后输入 命令:easy_install pip (恭喜你这边安装成功后,就可以顺利使用pip命令了)
参考图(运行结果不保证与该图完全一致):
7、直接使用pip安装selenium,命令为:pip install -U selenium
参考图(运行结果不保证与该图完全一致):
8、打开python的shell或者IDEL界面 ,输入“from selenium import webdriver ”如果不报错那就说明你已经可以正常运行了。
9、打开python的idle,运行如下脚本,体验一下吧!
from selenium import webdriver
browser = webdriver.Firefox() # 打开火狐浏览器
***隐藏网址***
如何在python中使用selenium
下载python版本的python包,放入到python的lib下面,然后下载selenium的jar。
启动使用Java -jar selenium-server-standalone-2.0b3.jar
测试例子:
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.keys import Keys
import time
browser = webdriver.Firefox() # Get local session of firefox
browser.get("") # Load page
assert "Yahoo!" in browser.title
elem = browser.find_element_by_name("p") # Find the query box
elem.send_keys("seleniumhq" + Keys.RETURN)
time.sleep(0.2) # Let the page load, will be added to the API
try:
browser.find_element_by_xpath("//a")
except NoSuchElementException:
assert 0, "can’t find seleniumhq"
browser.close()
运行的结果是打开雅虎浏览器搜素seleniuhq,然后查找
Selenium (SeleniumHQ) 是 thoughtworks公司的一个集成测试的强大工具。
一、Selenium 的版本
Selenium 现在存在2个版本,一个叫 selenium-core, 一个叫selenium-rc 。
selenium-core 是使用HTML的方式来编写测试脚本,你也可以使用 Selenium-IDE来录制脚本,但是目前Selenium-IDE只有 FireFox 版本。
Selenium-RC 是 selenium-remote control 缩写,是使用具体的语言来编写测试类。
selenium-rc 支持的语言非常多,这里我们着重关注java的方式。这里讲的也主要是 selenium-rc,因为个人还是喜欢这种方式.
下图是Selenium IDE的运行界面截图:
如何搭建python+selenium开发环境教程讲解
这篇文章主要为大家详细介绍了python+selenium开发环境搭建的图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
web 调试工具介绍和开发环境搭建
python与selenium开发环境搭建:
***隐藏网址***
下载完后,进行安装,安装成功后,打开IDLE(Python 3.6.2),如下图:
如上图在里面输入print("Hello Wrod!")按回车,出现Hello Wrod!,说明已经把IDLE装好了,下面打开dos命令窗口输入Python按回车。如下图:
出现python版本号等信息说明python已经安装成功。如果出现错误信息,则需要配置环境变量:
在环境系统变量Path中添加python的安装目录,比如:C:\Python35\Scripts;C:\Python35\,这个是安装在C盘的目录。
***隐藏网址***
下载完成后解压,打开dos命令窗口进入刚才解压后的文件夹里面(如:D:\pip-9.0.1,这个是解压后的pip文件夹)输入如下信息:
输入如下信息后按回车键,进行安装,安装完后显示安装目录为:C:\Python35\Lib\site-packages\pip-9.0.1-py3.5.egg
再dos命令窗口输入:pip.exe按回车,如下图:
然后配置环境变量,在环境系统变量Path中添加C:\Python35\Lib\site-packages\pip-9.0.1-py3.5.egg(这个是安装在C盘的目录)。
再次打开打开IDLE(Python 3.6.2)输入import selenium按回车键,如下图:
如果没有找到selenium可以使用pip install -U selenium命令安装
下面使用selenium打开firefox浏览器:
***隐藏网址***
在IDLE(Python 3.6.2)中输入import selenium按回车,再入from selenium import webdriver按回车,最后输入browser=webdriver.Firefox()按回车键就能成功调用firefox浏览器。如图:
firefox前端工具介绍:
1.fireBug:FireFox浏览器下的一套开发类插件
2.作用:查看页面上的元素,从而根据其属性进行定位
如何安装fireBug,打开FireFox浏览器照以下图片上的操作进行安装即可:
前端技术介绍:
1.html:网页的基础,是一种标记语言,显示数据;
2.JS:前端脚本语言,解释型语言,在页面中添加交互行为;
3.xml:扩展标记语言,用来传输和存储数据
4.css:层叠样式表,用来表现HTML或XML等文件样式
下面使用selenium打开chrome浏览器(安装Chrome浏览器webdriver):
1.安装chrome浏览器;2.下载chromedriver.exe;3.将下载的chromedriver.exe文件放到安装Chrome浏览器目录下面(如:C:\Users\Administrator\AppData\Local\Google\Chrome\Application)4.配置环境变量,将C:\Users\Administrator\AppData\Local\Google\Chrome\Application添加到环境系统变量Path中。
在IDLE(Python 3.6.2)中输入import selenium按回车,再入from selenium import webdriver按回车,最后输入b=webdriver.Chrome()按回车键就能成功调用chrome浏览器。如图:

更多文章:
Windows批处理命令和使用教程(几个简单的Bat批处理)?怎么批处理文件名
2025年9月16日 07:45
windowsinstaller下载(如何下载Windows Installer Clean Up)
2025年6月24日 21:45
spring festival简笔画(春节怎么画简单又漂亮 二年级)
2026年8月27日 12:00
filesystemobject同时读写(ASP 读取txt 然后累加在写入txt)
2025年11月11日 23:45
marble columns什么意思(matlab里面 column 1 through 3 什么意思)
2026年3月17日 04:30
select按钮什么意思(2ds按键start和select是干什么的)
2025年7月22日 07:45
默克尔: 那时的乌克兰可不是今天(默克尔这番话,武契奇:“颠覆认知”)
2026年7月16日 15:00
datetime数据类型使用几个字符来表示日期和时间(日期的表示方法有几种)
2026年8月24日 22:45
img格式照片画质(img大小怎么设置可以适应不同分辨率的excell)
2025年11月19日 19:00
performclick翻译(帮我把下列英语翻译成中文,急用!)
2026年7月26日 15:00
substring只有一个参数(jquery的substring 怎么使用)
2025年5月26日 11:00
jqc遇到u头上两点要去掉(为什么j q x后加:ü时要去掉两点)
2025年11月16日 12:45
pipeline platform(JDK 7确定B计划 部分特性延迟到JDK 8)
2025年6月13日 18:15










