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自动化案例相关推荐

  1. selenium自动化案例(一)B站专栏爬虫

    文章目录 写在前面 案例分析 代码实现 写在前面 前几天学习了selenium自动化以及CSS.Xpath元素定位,想着找个网站练练手,不用登录的B站就是个不错的选择,下面以B站的校园学习专栏为例进行 ...

  2. selenium自动化案例(二)滑动验证码破解

    文章目录 写在前面 大致思路 Python实现 几个小坑 写在前面 最近学习了滑动验证的一个破解思路,是利用OpenCV的图形匹配算法进行对比验证,从而推算出滑块移动的距离,在实际应用中比较常见,我主 ...

  3. 从入门到入土:Python爬虫学习|Selenium自动化模块学习|简单入门|轻松上手|自动操作浏览器进行处理|chrome|PART01

    此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...

  4. Datawhale第十二期组队学习--Python爬虫编程实践 Task03:session和cookie、代理、selenium自动化 拔高:丁香园留言板爬取

    一. session和cookie 常用的 web 容器有 Nginx . Apache . Tomcat .Weblogic . Jboss . Resin 等等 http 1.0 HTTP1.0的 ...

  5. 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 加载浏 ...

  6. 目前记录♡最详细的一篇记录学习笔记 ---Python爬虫(18) selenium自动化安装和使用

    一. selenium自动化介绍 Selenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,Selenium 可以直接运行在浏览器上,它支持所有主流的浏览器(包括PhantomJS ...

  7. python+selenium自动化软件测试

    1.1 环境搭建 1.1.1 selenium简介 Selenium 是用于测试 Web 应用程序用户界面 (UI) 的常用框架.它是一款用于运行端到端功能测试的超强工具.您可以使用多个编程语言编写测 ...

  8. 使用selenium自动化爬取腾讯研究院报告

    使用selenium自动化爬取腾讯研究院报告 需要用到的库:docx(需要pip install python-docx,不然有些函数无法使用).re.requests.lxml.selenium.t ...

  9. Selenium自动化爬取某东商品信息

    文章目录 前言 一.selenium是什么? 1.什么是selenium 2.selenium的用途 二.使用开发步骤 1.引入库 2.函数:管理浏览器操作open_brower() 3.函数:定位提 ...

最新文章

  1. Struts 2(八):文件上传
  2. 为什么要那么大的房子和那么大的储存空间呢?
  3. 开博 即便网络工程师真的没落了,兴趣不是最重要的么?
  4. 初探Golang(1)-变量
  5. mongodb 存储过程 遍历表数据_mongodb查看数据库和表的信息
  6. html基本语法(实例)
  7. linux7配网卡,CentOS 7 配置网卡
  8. python图像处理应用的前景_传统图像处理还有前景吗?
  9. ServletContextAware、ServletRequestAware、ServletResponseAware、SessionAware
  10. php框架laravel下载,Laravel框架下载,安装及路由操作图文详解
  11. 恩智浦智能车四轮组-- 1.电磁检测方案、运放选型
  12. 点云纹理映射 matlab,Spherical Texture Mapping Method for Large-scale Point Cloud Data
  13. uniApp小程序转快应用
  14. windows无法连接到打印机
  15. 易语言传文本到c 崩溃,win7系统易语言打开支持库配置就崩溃的解决方法
  16. Windows10安装Linux子系统Ubuntu
  17. 合肥工业大学宣城校区Java技术实验一 Java开发环境的安装与配置
  18. 复制conda env环境:/home/×××/bin/python 没有解析器的问题
  19. Microsoft Office
  20. 计算机网络:网络层的功能概述

热门文章

  1. 终于见到你了,中国天眼!
  2. SpringTask定时任务 @Scheduled cron、fixedRate、fixedDelay、fixedDelayString、fixedRateString的区别
  3. 深度学习网络模型——RepVGG网络详解、RepVGG网络训练花分类数据集整体项目实现
  4. 线程池解析(三)——Worker源码解析
  5. A-Level补考注意事项
  6. 17个C语言字符串处理函数
  7. C语言字符串函数----strcmp()函数用法
  8. java Long 转Integer
  9. 虹软人脸识别初试(windows SDK,idea,USB摄像头)
  10. 门限回归模型的思想_面板门限回归模型及Stata