大型情感剧集Selenium:1_介绍

大型情感剧集Selenium:4_老中医教你(单/多/下拉框)选项定位 #华为云·寻找黑马程序员# 又要开篇叨叨 昨天没有更新,但因为下大雨没撸串,陪孩子玩了下前一天写的Flask开发猜数字小游戏—聪明的奥特曼,发现代码有些bug,进行了修改,另外只是名字叫聪明的奥特曼,我的俩爷不买账啊,没办法,将成功的alert改为展示奥特曼的图片,才把他俩打发。至于做对?别逗了,我都改成猜1-4了都各种错,就急着点完了看奥特曼,真是气死我了… 今天讲什么 讲什么标题说了,讲selenium的单选、多选、下拉... 阅读详情
写在前面的话

昨天说到,之后一阵子,打算把selenium的知识进行一个复习和系统的总结。要说明以下几点:

  1. 因为是系统的总结,所以文章具备连贯性,但我尽量将较为集中的知识点整理在一起发
  2. 由浅入深的知识内容,开篇肯定不会有太多的技术涉及,觉得无趣还望轻喷
  3. 并不是所有朋友都喜欢或都有意愿学习selenium,所以在这个系列中还是会穿插发一些其他的文章
  4. 毕竟文章的总结是基于python和selenium知识的,其中会涉及测试设计等方面,但不是文章重点,故不会过于详细的说明
  5. 这个系列会在微信公众号底部的文章分类单独开一个窗口进行集中收录,只是希望自己能坚持把这个系列的文章写完
  6. 欢迎催更与错误问题指正,但公众号一经发布的文章,无法修改,故对应的简书清风python会同步更新
学习selenium能做什么?

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

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

可如果要是这么介绍selenium,估计明天关注我的人80%都要弃坑了,我又不是测试、我学什么selenium。wait a moment!先别取关...
请仔细读读后半句,支持所有基于web的管理任务和自动化!
什么算基于web的任务,就只是自动化测试?非也非也,只要是通过浏览器访问的事件,都可以算在内啊!
如今,越来越多的反爬虫技术(千奇百怪的登陆验证、接口调用中的cookie验证、异步动态加载、等等...),是你没办法直接通过requests完成获取相关数据。这时候,你就可以使用selenium,模拟浏览器操作,自动化完成你的数据获取。

简单介绍selenium

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

  1. Jason Huggins 在2004年任职于ThoughtWorks时,发起了Selenium项目
  2. selenium存在三个版本1.0、2.0、3.0,且即将推出4.0
  3. 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的库
  4. Selenium 2.0 推出了WebDriver用来替代Selenium RC(主推: WebDriver 备胎:Selenium RC)
  5. Selenium 3.0 WebDriver彻底替代了Selenium Grid
  6. WebDriver封装了基础的协议规范,WebDriver 针对各个浏览器而开发(所以针对不同浏览器,需要下载不同的webdriver),用来控制浏览器
  7. 支持主流的编程语言,包括: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仓库,地址:https://github.com/KingUranus/SeleniumTest
  • 不半途而废的信心,over...

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

ChromeDriver版本支持的Chrome版本
v2.46v71-73
v2.45v70-72
v2.44v69-71
v2.43v69-71
v2.42v68-70
v2.41v67-69
v2.40v66-68
v2.39v66-68
v2.38v65-67
v2.37v64-66
v2.36v63-65
v2.35v62-64
v2.34v61-63
v2.33v60-62
v2.32v59-61
v2.31v58-60
v2.30v58-60
v2.29v56-58
v2.28v55-57
v2.27v54-56
v2.26v53-55
v2.25v53-55
v2.24v52-54
v2.23v51-53
v2.22v49-52
v2.21v46-50
v2.20v43-48
v2.19v43-47
v2.18v43-46
v2.17v42-43
v2.13v42-45
v2.15v40-43
v2.14v39-42
v2.13v38-41
v2.12v36-40
v2.11v36-40
v2.10v33-36
v2.9v31-34
v2.8v30-33
v2.7v30-33
v2.6v29-32
v2.5v29-32
v2.4v29-32

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()

效果如下:


5847426-cb73d3c3a81d9739.gif
Day1_FirstDemo.gif
避坑指南

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的人。
毕竟像我这种疯狂天天更新,还都是原创的公众号,你们很少见吧....哈哈
你也可以点击右下角的在看,让我知道你来过...
公众号内有整理好的各类福利书籍供大家下载,还想要更多的可以私信我,记得扫码关注:

5847426-6a08c9b14c8a9d3d.png
清风Python

大型情感剧集Selenium:1_介绍 #华为云·寻找黑马程序员# 写在前面的话 昨天说到,之后一阵子,打算把selenium的知识进行一个复习和系统的总结。要说明以下几点: 因为是系统的总结,所以文章具备连贯性,但我尽量将较为集中的知识点整理在一起发 由浅入深的知识内容,开篇肯定不会有太多的技术涉及,觉得无趣还望轻喷 并不是所有朋友都喜欢或都有意愿学习selenium,所以在这个系列中还是会穿插发一些其他的文章 毕竟文章的总结是基于python和seleniu... 阅读详情

相关推荐

基因的富集分析

通过RNA_seq差异表达分析等获得一组基因,想要进一步了解这些基因可能参与哪些生物学过程,具有哪些功能,一般就会用到基因的富集分析了。现在小麦基因注释信息已经可以获得,目前来看包括两套。一个是TGACv1,另一个就是IWGSC1.0。需要用到一个叫“clusterProfiler”的R包。下面用到的数据集来自TGACv1。1、安装source("https://bioconductor.org/b

xxxxx 1万+

python+selenium跑chorme时,chromedriver的版本不对应

如果chorme和chromedriver的版本不对应,就会报类似如下错误: selenium.common.exceptions.SessionNotCreatedException: Message: session not created: Chrome version must be between 71 and 75 (Driver info: chromedriver=2.46.628...

weixin_41990913的博客 2225

别再为UE5像素流部署踩坑了!Windows服务器单实例保姆级避坑指南(含Node.js证书、coturn空文件夹等常见问题解决)

本文提供了UE5像素流在Windows服务器单实例部署中的全面解决方案,涵盖Node.js证书过期、coturn空文件夹等常见问题。通过详细的步骤指导和配置建议,帮助开发者高效完成部署,避免常见陷阱,特别适合局域网环境下的应用场景。

weixin_30315435的博客 465

大型情感剧集Selenium:3_元素定位

关于昨天的文章 今天有朋友反馈,代码运行的时候,selenium提示警告 DeprecationWarning: use options instead of chrome_options driver = webdriver.Chrome(chrome_options=options) 本来以为是我的selenium版本太低了,可以上官网看到3.141.0是最新版本啊,最后把...

清风Python 305

使用TMS320F28335控制四位共阳数码管

简要阐述利用F28335控制四位共阳数码管的整个过程,包括原理、思路、部分代码以及调试过程。

liujunhaozuishuai的博客 2659

【RF】Receiver Function接收函数:从理论到实践的深度解析

本文深入解析地震学中的接收函数(Receiver Function, RF)技术,从理论原理到实践操作。文章将RF比作地球的“听诊器”,详细阐述了其通过反褶积剥离震源影响、揭示地下结构(如莫霍面)的核心机制,并提供了使用Python和rf库进行数据处理、计算、动校正与叠加的完整实战流程,同时探讨了其应用、局限性与常见问题的解决方案。

Jerry的专栏 121

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

写在前面的话 昨天说到,之后一阵子,打算把selenium的知识进行一个复习和系统的总结。要说明以下几点: 因为是系统的总结,所以文章具备连贯性,但我尽量将较为集中的知识点整理在一起发 由浅入深的知识内容,开篇肯定不会有太多的技术涉及,觉得无趣还望轻喷 并不是所有朋友都喜欢或都有意愿学习selenium,所以在这个系列中还是会穿插发一些其他的文章 毕竟文章的总结是基于python和sel...

华为云官方博客 1408

gem5 prefetcher

最近在gem5上做预取实验,添加自己的预取算法,这里采用hardware stream prefetcher , 修改了几个bug才给实验调试通过,发文记录下实验过程。 gem5上添加自己的预取算法步骤: (1)路径gem5-master/configs/common/Caches.py下,开启预取:class L1Cache(Cache): assoc = 2 tag_late

编程邦 3844

大型情感剧集Selenium:8_selenium网页截图的四种方法

有时候,有时候,你会相信一切有尽头…当你的代码走到了尽头,那么保留最后一刻的状态尤为重要,此时你该如何操作?记录日志…没有将浏览器当前的状态进行截图来的直观! 那么,selenium截取截屏,有哪些方法呢?有四个。 说到讲方法,什么都没有直接看源码来的直观,我带大家走一波,跟进别迷路! 1.先来看看save_screenshot(filename) """ def save_...

华为云官方博客 2954

车辆网络安全ISO/SAE 21434解读(一)概述

ISO/SAE 21434 《道路车辆 网络安全工程》是SAE和ISO共同制定的一项针对道路车辆的网络安全标准,它是一个面向汽车行业全供应链(OEM及各级供应商)的车辆网络安全管理指导文件

xiaoxiabang的博客 8426

手把手教你学Simulink--基于飞行控制与稳定性的场景实例:多旋翼无人机在风扰动下的稳定性分析

本文介绍了使用Simulink仿真多旋翼无人机在风扰动下稳定性的方法。通过构建包含飞行器动力学模型、PID控制系统和环境模拟模块的仿真系统,分析了无人机在不同风速条件下的飞行性能。详细说明了从创建模型、设置动力学方程、设计PID控制器到添加风扰动模型的完整流程,并提供了性能评估指标。该方法可用于验证控制系统有效性,优化飞行稳定性参数,为无人机控制系统的设计和调试提供参考。

MHD0815的博客 328

大型情感剧集Selenium:2_options设置

selenium从入门到放弃 今天用一张朋友圈截图开篇吧... 依然被嘲讽.jpg 不出所料与果不其然...又被嘲讽了啊,这个流汗的表情暴击一万点伤害。 每天在嘲讽中学习,我感觉可以写一本辛酸泪的书了,名字叫【公众号,从发文到放弃】,哈哈! 其实这种针对个别群体的文章,远不如娱乐性质的python文章来的有吸引力。 就好比我隔壁工位的盆友,今天说“你总是夜里发文章,早...

清风Python 519

C++实现设计ATM机系统

这个示例实现了一个基本的ATM机系统,支持注册、登录、存款、取款、查询余额和保存数据等功能。当然,这只是一个简单的ATM机模拟,实际的ATM机系统需要更复杂的逻辑和更严格的安全措施。C++编写一个简单的ATM机系统,我将提供一个基本的实现示例,但由于ATM机系统的复杂性和安全性要求,这只是一个简单的模拟,不适合在实际环境中使用。试设计一简单模拟ATM机系统,系统以菜单方式工作,采用自定义函数设计各功能模块被主菜单调用,使之能提供以下基本选项。=========欢迎使用ATM=========

走向CTO的路上... 1243

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

关于昨天的文章 今天有朋友反馈,代码运行的时候,selenium提示警告 DeprecationWarning: use options instead of chrome_options driver = webdriver.Chrome(chrome_options=options) 本来以为是我的selenium版本太低了,可以上官网看到3.141.0是最新版本啊,最后把pyth...

华为云官方博客 3450

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

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

上集回顾 昨天说简单介绍了什么是selenium,它能干what,和发展史与梗概。当的是python如何通过pip安装selenium,并下载对应浏览器的webdriver。 最后简单通过一个Demo描述了下如何导入selenium模块,并通过webdriver打开浏览器(我用的chrome),访问我的简书… 今日内容 按照大纲来说,今天该讲selenium的几种对象定位方法了。但我按照套...

华为云官方博客 3472

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

大型情感剧集Selenium:5_alert窗口与iframe框架定位

有种感觉 有种感觉,是否应该尽快结束这个selenium的情感剧。因为自从开始写这个系列的文章,阅读量就好少好少。虽说是学习总结,但码字比学习更费时间,写完了还没人看,心塞。 今日要闻 今天和大家说说alert与iframe框架早selenium定位中,存在的问题吧。 很多网站,一些功能还在使用简陋的alert进行弹窗确认操作。但是selenium如何可以定位到js弹窗的内容呢?之...

清风Python 246

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

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

selenium从入门到放弃 今天用一张朋友圈截图开篇吧… 不出所料与果不其然…又被嘲讽了啊,这个流汗的表情暴击一万点伤害。 每天在嘲讽中学习,我感觉可以写一本辛酸泪的书了,名字叫【公众号,从发文到放弃】,哈哈! 其实这种针对个别群体的文章,远不如娱乐性质的python文章来的有吸引力。 就好比我隔壁工位的盆友,今天说“你总是夜里发文章,早上就被其他公众号冲走了,你看冷兔的公众号,早上刚发马上十...

SlaughterDevil的博客 296

大型情感剧集Selenium:4_老中医教你(单/多/下拉框)选项定位

又要开篇叨叨 昨天没有更新,但因为下大雨没撸串,陪孩子玩了下前一天写的Flask开发猜数字小游戏---聪明的奥特曼,发现代码有些bug,进行了修改,另外只是名字叫聪明的奥特曼,我的俩爷不买账啊,没办法,将成功的alert改为展示奥特曼的图片,才把他俩打发。至于做对?别逗了,我都改成猜1-4了都各种错,就急着点完了看奥特曼,真是气死我了..... 今天讲什么 讲什么标题说了,讲sel...

清风Python 339

大型情感剧集Selenium:5_alert窗口与iframe框架定位 #华为云·寻找黑马程序员#

有种感觉 有种感觉,是否应该尽快结束这个selenium的情感剧。因为自从开始写这个系列的文章,阅读量就好少好少。虽说是学习总结,但码字比学习更费时间,写完了还没人看,心塞。 今日要闻 今天和大家说说alert与iframe框架早selenium定位中,存在的问题吧。 很多网站,一些功能还在使用简陋的alert进行弹窗确认操作。但是selenium如何可以定位到js弹窗的内容呢?之前说到的那些id...

SlaughterDevil的博客 258
上一篇: Flask开发vip版HttpServer
下一篇: 大型情感剧集Selenium:2_options设置
清风Python
博客等级 码龄7年 406粉丝 267原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值