Selenium自动化案例
Selenium自动化案例
简单说明:最近学习了一下python爬虫,然后这是涉及到的其中一门技术,提功能强大,这只是个简单案例,都实现了自动百度的功能,结合其他的会更加的自动,更利于开发。
Selenium的基本概述
1.什么是selenium?
(1)Selenium是一个用于Web应用程序测试的工具。
(2)Selenium 测试直接运行在浏览器中,就像真正的用户在操作一样。
(3)支持通过各种driver(FirfoxDriver,IternetExplorerDriver,OperaDriver,ChromeDriver)驱动
真实浏览器完成测试。
(4)selenium也是支持无界面浏览器操作的。
2.为什么使用selenium?
模拟浏览器功能,自动执行网页中的js代码,实现动态加载
3.如何安装selenium?
(1)操作谷歌浏览器驱动下载地址
http://chromedriver.storage.googleapis.com/index.html
(2)谷歌驱动和谷歌浏览器版本之间的映射表
http://blog.csdn.net/huilan_same/article/details/51896672
(3)查看谷歌浏览器版本
谷歌浏览器右上角‐‐>帮助‐‐>关于
(4)pip install selenium
4.selenium的使用步骤?
(1)导入:from selenium import webdriver
(2)创建谷歌浏览器操作对象:
path = 谷歌浏览器驱动文件路径
browser = webdriver.Chrome(path)
(3)访问网址
url = 要访问的网址
browser.get(url)
案例测试。
需求:用selenium自动打开百度首页,然后自动输入周星驰,然后百度一下,滑到最底部,然后点击下一页,然后返回,然后关闭退出。
1.首先导包,然后创建浏览器对象,打开一个网页。
#1.导包
from selenium import webdriver
#将下载的谷歌浏览器驱动放进来,将其放在一个文件下
path='chromedriver.exe'#创建浏览器对象,我是使用的chrome,当然它也支持其他常见的浏览器,看个人选择
browser=webdriver.Chrome(path)#url
url='https://www.baidu.com'
browser.get(url)
打开百度首页效果图:
2.然后就是获取首页里面的文本框输入对象,还有就是百度一下对象。
#通过源码看它们的id,就可以获取到两个对象
input = browser.find_element_by_id('kw')
input = browser.find_element_by_id('su')
3.写入数据,实现点击
# 在文本框中输入周星驰
input.send_keys('周星驰')
#实现点击百度一下
button.click()
4.进入另一页,实现滑到底部
# 滑到底部,固定写法
js_bottom = 'document.documentElement.scrollTop=100000'
browser.execute_script(js_bottom)
5.然后同第二部一样的原理,获取下一页的对象,实现点击功能。
# 获取下一页的按钮
next = browser.find_element_by_xpath('//a[@class="n"]')# 点击下一页
next.click()
6.回到上一页和返回,并且关闭退出
# 回到上一页
browser.back()# 回去
browser.forward()
# 退出
browser.quit()
动态图片:
多次测试过后,发现自动下滑的时候出现了验证,所有需要该selenium需要结合其他的使用,比如添加Chrome handless
Chrome-headless 模式, Google 针对 Chrome 浏览器 59版 新增加的一种模式,可以让你不打开UI界面的情况下
使用 Chrome 浏览器,所以运行效果与 Chrome 保持完美一致。 就不需要每次都打开界面,也可以进行该操作,可以选择操作时进行快照的方式,拍摄图片,也更加的省效率,绕过登录的话,还需要结合其他技术一起使用,使其更高效,功能更强大。
完整代码:
#1.导包
from selenium import webdriver
#将下载的谷歌浏览器驱动放进来,将其放在一个文件下
path='chromedriver.exe'#创建浏览器对象,我是使用的chrome,当然它也支持其他常见的浏览器,看个人选择
browser=webdriver.Chrome(path)#url
url='https://www.baidu.com'
browser.get(url)import time
#打开过后休眠一秒,看下反应,方便对比
time.sleep(1)# 获取文本框的对象
input = browser.find_element_by_id('kw')
# 在文本框中输入周星驰
input.send_keys('周杰伦')time.sleep(1)#获取百度一下对象
button = browser.find_element_by_id('su')
#实现点击百度一下
button.click()# 滑到底部,固定写法
js_bottom = 'document.documentElement.scrollTop=100000'
browser.execute_script(js_bottom)time.sleep(1)# 获取下一页的按钮
next = browser.find_element_by_xpath('//a[@class="n"]')# 点击下一页
next.click()
time.sleep(1)
# 回到上一页
browser.back()
time.sleep(1)
# 回去
browser.forward()
time.sleep(1)
# 退出
browser.quit()
Selenium自动化案例相关推荐
- selenium自动化案例(一)B站专栏爬虫
文章目录 写在前面 案例分析 代码实现 写在前面 前几天学习了selenium自动化以及CSS.Xpath元素定位,想着找个网站练练手,不用登录的B站就是个不错的选择,下面以B站的校园学习专栏为例进行 ...
- selenium自动化案例(二)滑动验证码破解
文章目录 写在前面 大致思路 Python实现 几个小坑 写在前面 最近学习了滑动验证的一个破解思路,是利用OpenCV的图形匹配算法进行对比验证,从而推算出滑块移动的距离,在实际应用中比较常见,我主 ...
- 从入门到入土:Python爬虫学习|Selenium自动化模块学习|简单入门|轻松上手|自动操作浏览器进行处理|chrome|PART01
此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...
- Datawhale第十二期组队学习--Python爬虫编程实践 Task03:session和cookie、代理、selenium自动化 拔高:丁香园留言板爬取
一. session和cookie 常用的 web 容器有 Nginx . Apache . Tomcat .Weblogic . Jboss . Resin 等等 http 1.0 HTTP1.0的 ...
- python+selenium自动化软件测试(第2章)
目录 2.1 操作元素基本方法 2.1.1 打开网页 2.1.2 设置休眠 2.1.3 页面刷新 2.1.4 页面切换 2.1.5 设置窗口大小 2.1.6 截屏 2.1.7 退出 2.1.8 加载浏 ...
- 目前记录♡最详细的一篇记录学习笔记 ---Python爬虫(18) selenium自动化安装和使用
一. selenium自动化介绍 Selenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,Selenium 可以直接运行在浏览器上,它支持所有主流的浏览器(包括PhantomJS ...
- python+selenium自动化软件测试
1.1 环境搭建 1.1.1 selenium简介 Selenium 是用于测试 Web 应用程序用户界面 (UI) 的常用框架.它是一款用于运行端到端功能测试的超强工具.您可以使用多个编程语言编写测 ...
- 使用selenium自动化爬取腾讯研究院报告
使用selenium自动化爬取腾讯研究院报告 需要用到的库:docx(需要pip install python-docx,不然有些函数无法使用).re.requests.lxml.selenium.t ...
- Selenium自动化爬取某东商品信息
文章目录 前言 一.selenium是什么? 1.什么是selenium 2.selenium的用途 二.使用开发步骤 1.引入库 2.函数:管理浏览器操作open_brower() 3.函数:定位提 ...
最新文章
- Struts 2(八):文件上传
- 为什么要那么大的房子和那么大的储存空间呢?
- 开博 即便网络工程师真的没落了,兴趣不是最重要的么?
- 初探Golang(1)-变量
- mongodb 存储过程 遍历表数据_mongodb查看数据库和表的信息
- html基本语法(实例)
- linux7配网卡,CentOS 7 配置网卡
- python图像处理应用的前景_传统图像处理还有前景吗?
- ServletContextAware、ServletRequestAware、ServletResponseAware、SessionAware
- php框架laravel下载,Laravel框架下载,安装及路由操作图文详解
- 恩智浦智能车四轮组-- 1.电磁检测方案、运放选型
- 点云纹理映射 matlab,Spherical Texture Mapping Method for Large-scale Point Cloud Data
- uniApp小程序转快应用
- windows无法连接到打印机
- 易语言传文本到c 崩溃,win7系统易语言打开支持库配置就崩溃的解决方法
- Windows10安装Linux子系统Ubuntu
- 合肥工业大学宣城校区Java技术实验一 Java开发环境的安装与配置
- 复制conda env环境:/home/×××/bin/python 没有解析器的问题
- Microsoft Office
- 计算机网络:网络层的功能概述
热门文章
- 终于见到你了,中国天眼!
- SpringTask定时任务 @Scheduled cron、fixedRate、fixedDelay、fixedDelayString、fixedRateString的区别
- 深度学习网络模型——RepVGG网络详解、RepVGG网络训练花分类数据集整体项目实现
- 线程池解析(三)——Worker源码解析
- A-Level补考注意事项
- 17个C语言字符串处理函数
- C语言字符串函数----strcmp()函数用法
- java Long 转Integer
- 虹软人脸识别初试(windows SDK,idea,USB摄像头)
- 门限回归模型的思想_面板门限回归模型及Stata