学习selenium能做什么?

很多书籍、文章中是这么定义selenium的:

Selenium 是开源的自动化测试工具,它主要是用于Web 应用程序的自动化测试,不只局限于此,同时支持所有基于web 的管理任务自动化。

可如果要是这么介绍selenium,估计明天关注我的人80%都要弃坑了,我又不是测试、我学什么selenium。wait a moment!先别取关…

请仔细读读后半句,支持所有基于web的管理任务和自动化!

什么算基于web的任务,就只是自动化测试?非也非也,只要是通过浏览器访问的事件,都可以算在内啊!

如今,越来越多的反爬虫技术(千奇百怪的登陆验证、接口调用中的cookie验证、异步动态加载、等等…),是你没办法直接通过requests完成获取相关数据。这时候,你就可以使用selenium,模拟浏览器操作,自动化完成你的数据获取。

简单介绍selenium

公众号里面写上selenium的前世今生,你们肯定直接觉得篇幅太长懒得看了,那我简单的概括下:

Jason Huggins 在2004年任职于ThoughtWorks时,发起了Selenium项目

selenium存在三个版本1.0、2.0、3.0,且即将推出4.0

Selenium 1.0 = Selenium IDE + Selenium Grid + Selenium RC

Selenium IDE是嵌入到Firefox浏览器中的一个插件,实现简单的浏览器操作的录制与回放功能

Selenium Grid是一种自动化的测试辅助工具,Grid通过利用现有的计算机基础设施,能加快Web-App的功能测试

Selenium RC分为Client Libraries和Selenium Server。Client Libraries库主要用于编写测试脚本,用来控制Selenium Server的库

Selenium 2.0 推出了WebDriver用来替代Selenium RC(主推: WebDriver 备胎:Selenium RC)

Selenium 3.0 WebDriver彻底替代了Selenium Grid

WebDriver封装了基础的协议规范,WebDriver 针对各个浏览器而开发(所以针对不同浏览器,需要下载不同的webdriver),用来控制浏览器

支持主流的编程语言,包括:Java、Python、C#、PHP、Ruby、JavaScript等

针对我们Python学习的内容,就是:

如何通过WebDriver封装的基础协议,完成正确的代码编写,从而控制浏览器进行成语接龙,为所欲为–为所欲为–为…

学习准备

Python3.5+,我使用的3.6.8…

顺手的编辑器,我选择的pycharm

配置好包管理工具pip,使用pip install selenium,完成selenium(selenium-3.141.0)的安装

selenium支持多种浏览器,但差别仅仅是需要下载不同的Webdriver,所以挑一款浏览器即可,

我选择Chrome(v70版本),不知道版本怎么看?(浏览器输入:chrome://settings/help)

下载对应浏览器及版本对应的Webdriver,并配置环境变量

代码和markdown文章统一放在了git仓库,地址:KingUranus/SeleniumTest

不半途而废的信心,over…

Chrome浏览器版本对应的Webdriver版本信息如下:

ChromeDriver下载,推荐大家使用华为开源镜像站,下载对应系统的Webdriver,Webdriver为一个单独的exe文件,如何配置是它生效?最懒的版本是丢到你的python安装根目录,亦或者你单独找个私密的地址存起来,然后在环境变量的path中添加配置该地址。

第一份selenium代码

# -*- coding: utf-8 -*-
# @Author   : 王翔
# @JianShu  : 清风Python
# @Date     : 2019/6/17 23:36
# @Software : PyCharm
# @version  :Python 3.6.8
# @File     : Day1_FirstDemo.py# 引入webdriver,不报错代表代表selenium安装成功
from selenium import webdriver
# 演示所需,添加等待时间
import time# 定义对应浏览器的webdrvier
# 若提示xxxdriver executable needs to be in PATH
# 你忘记下载webdriver,或者没配置好对应的环境变量
# 当然也会有报错版本不匹配的情况发生,那么请调整好你浏览器与Driver的对应版本
# 几种浏览器对应的引入方式
# driver = webdriver.Firefox()
# driver = webdriver.Ie()
driver = webdriver.Chrome()# 打开浏览器,并在地址栏输入所需访问的网站(我的简书)
driver.get("https://www.jianshu.com/u/d23fd5012bed")# 等待1秒,看看是否访问成功?
time.sleep(1)# 退出drvier关闭浏览器
driver.quit()

效果如下:

避坑指南

Message: ‘chromedriver’ executable needs to be in PATH

说明你忘记下载webdriver,或者没配置好对应的环境变量

selenium.common.exceptions.SessionNotCreatedException: Message: session not created: Chrome version must be between 71 and 75
(Driver info: chromedriver=2.46.628402 (536cd7adbad73a3783fdc2cab92ab2ba7ec361e1),platform=Windows NT 6.1.7601 SP1 x86_64)

2.46版本的chromedriver,需要对应71-75的浏览器,我是70的,所以报错,去下载2.45即可

To Be Continue

今天的内容就到这里,如果觉得有帮助,欢迎将文章或者我的公众号【清风Python】分享给更多喜欢python的人。

来源:华为云社区征文 作者:清风Python

大型情感剧集Selenium:1_介绍 #华为云·寻找黑马程序员#相关推荐

  1. 移动端开发语言的未来的猜想#华为云·寻找黑马程序员#

    [摘要] #华为云.寻找黑马程序员# 不管是最早的Phonegap,还是后来的React Native.Weex,Flutter,或者是各个公司自创开发语言,都是在不断寻求开发语言统一,从而解决ios ...

  2. 三伏天里小试牛刀andriod开发 #华为云·寻找黑马程序员#

    三伏天里小试牛刀andriod 开发 #华为云·寻找黑马程序员# 2019年07月,北京,三伏天,好热啊.越热自己还越懒得动换(肉身给的信号),但是做为产品经理/交互设计师的,总想着思考些什么(灵魂上 ...

  3. 大型情感剧集Selenium:6_selenium中的免密登陆与cookie操作 #华为云·寻找黑马程序员#

    平常心 昨天因为看小说不方便,所以拿python撸了个小说批量下载工具.为了大家方便所以打包成exe分享给大家. 可今天朋友就说了,这东西不能乱发,不论是各大盗版小说平台,还是淘宝上卖小说的店铺,触及 ...

  4. 大型情感剧集Selenium:4_老中医教你(单/多/下拉框)选项定位 #华为云·寻找黑马程序员#

    欢迎添加华为云小助手微信(微信号:HWCloud002 或 HWCloud003),输入关键字"加群",加入华为云线上技术讨论群:输入关键字"最新活动",获取华 ...

  5. 大型情感剧集Selenium:2_options设置 #华为云·寻找黑马程序员#

    上集回顾 昨天说简单介绍了什么是selenium,它能干what,和发展史与梗概.当的是python如何通过pip安装selenium,并下载对应浏览器的webdriver. 最后简单通过一个Demo ...

  6. 大型情感剧集Selenium:3_元素定位 #华为云·寻找黑马程序员#

    关于昨天的文章 今天有朋友反馈,代码运行的时候,selenium提示警告 DeprecationWarning: use options instead of chrome_options drive ...

  7. 大型情感剧集Selenium:6_selenium中的免密登陆与cookie操作 #华为云·寻找黑马程序员#

    欢迎添加华为云小助手微信(微信号:HWCloud002 或 HWCloud003),输入关键字"加群",加入华为云线上技术讨论群:输入关键字"最新活动",获取华 ...

  8. 爬虫新宠requests_html 带你甄别2019虚假大学 #华为云·寻找黑马程序员#

    python模块学习建议 学习python模块,给大家个我自己不专业的建议: 养成习惯,遇到一个模块,先去github上看看开发者们关于它的说明,而不是直接百度看别人写了什么东西.也许后者可以让你很快 ...

  9. 史上最全python字符串操作指南 #华为云·寻找黑马程序员#

    惨不忍睹 拿出了看家的老中医野广告,都没能拯救惨淡的selenium剧集.上周五和朋友聊天,说希望看到一些python基础的知识.本来还担心更新基础的东西没人看,但现在看来,最差不过selenium系 ...

最新文章

  1. 我的天,你工作5年了,连Java agent都不知道...
  2. java中volatile关键字的含义
  3. python网络爬虫基础day01
  4. 金明的预算方案(洛谷-P1064)
  5. android防止左向右滑出程序,Android向右滑动关闭Activity(高仿知乎微信)
  6. python代码生成器_Python金融应用之基金业绩评价体系构建
  7. 一部分 数据 迁移_yugong异构数据库迁移与同步
  8. Nginx stream 配置代理(Nginx TCP/UDP 负载均衡)
  9. 【Cocos2D-x 3.5实战】坦克大战(2)游戏开始界面
  10. 去掉连接图片的虚线框
  11. Qt for IOS 制作APP启动页面
  12. downloadjs浏览器下载文件
  13. kube-scheduler
  14. 【docker专栏5】详解docker镜像管理命令
  15. Windows平板真机调试
  16. 微信里扫描二维码弹出默认浏览器(苹果打开App Store)打开app的下载链接怎么实现
  17. 通过bat批处理命令进行adb push和adb pull批量拉取文件
  18. R语言ggplot2 | 循环画图及导出
  19. 快速扩张网站的十个妙招
  20. 计算机cct考试在线答题,【2017年整理】cct一级考试模拟题.ppt

热门文章

  1. android逆向分析有什么用,如何开始对Android应用的逆向分析?
  2. 基于matlab的电子时钟,基于LCD1602电子时钟毕业设计报告.doc
  3. vue.js点击更多加载更多数据,双数组合并
  4. 【BZOJ2243】[SDOI2011]染色 树链剖分+线段树
  5. Hibernate一张图
  6. 实例讲解Nginx下的rewrite规则 来源:Linux社区
  7. nullnullicon 小图标
  8. ArcGIS Server开发的一些小经验
  9. 比那 施氏食狮史 还要强的文章
  10. 《从强盗资本家到慈善家》--转载自思维的乐园