selenium入门详细指南(附淘宝抢购案例)
selenium是一款web自动化测试工具,可以很方便地模拟真实用户对浏览器进行操作,它支持各种主流浏览器:IE、Chrome、Firefox、Safari、Opera等。
selenium有多种编程语言的客户端驱动,编写自动化脚本语法简洁,其中python的selenium库便非常的受欢迎。
你可以使用selenium做web测试或者爬虫,自动抢票、自动下单也可以用selenium来做。
演示自动打开淘宝网(文末会有秒抢流程):
使用Selenium实现自动化测试,需要3个要素:
1.selenium客户端或者与特定编程语言绑定的客户端驱动,可以是python,java,js等;
2.浏览器驱动, 这个驱动是根据不同的浏览器开发的,不同的浏览器使用不同的webdriver驱动程序且需要对应相应的浏览器版本;
3.浏览器,目前selenium支持市面上大多数浏览器,如:火狐,IE等;
安装selenium
可以使用pip或conda命令安装selenium:
pip install selenium
安装浏览器驱动
Selenium调用浏览器必须有一个webdriver驱动文件,下载好后把驱动程序放到python安装目录里即可。
各大浏览器驱动下载地址:
Firefox: https://github.com/mozilla/geckodriver/releases/
Chrome: https://sites.google.com/a/chromium.org/chromedriver/
IE: http://selenium-release.storage.googleapis.com/index.html
以Chrome为例:
先在设置里查看Chrome版本:
然后下载对应的chromedrive,可以在淘宝的镜像网站下载: http://npm.taobao.org/mirrors/chromedriver/
找到对应的版本号下载,解压到python安装目录里,或者anaconda安装目录scripts文件夹里。
selenium操作浏览器
在notebook中进行selenium的脚本编写,可以随写随调,非常方便。
首先需要从selenium中导入webdriver模块:
from selenium import webdriver
然后打开浏览器:
browser = webdriver.Chrome()
最后可以打开某网址:
browser.get("https://www.taobao.com/")
针对浏览器的主要操作方法:
- 创建浏览器对象:driver = http://webdriver.xxx()
- 窗口最大化:maximize_window()
- 获取浏览器尺寸:get_window_size()
- 设置浏览器尺寸:set_window_size()
- 获取浏览器位置:get_window_position()
- 设置浏览器位置:set_window_position(x,y)
- 关闭当前标签/窗口:close()
- 关闭所有标签/窗口:quit()
selenium定位元素
因为selenium是模仿真实点击浏览器的行为,所以必须要先定位网页元素,才能进行各种操作。
「定位页面元素的8种主要方式」
- id定位:driver.find_element_by_id(value)
- name属性值定位:driver.find_element_by_name(value)
- 类名定位: driver.find_element_by_class_name(value)
- 标签名定位: driver.find_element_by_tag_name(value)
- 链接文本定位:driver.find_element_by_link_text(value)
- 部分链接文本:driver.find_element_by_partial_link_text(value)
- xpath路径表达式:driver.find_element_by_xpath(value)
- css选择器:driver.find_element_by_css_selector(value)
selenium操作网页
定位元素后,需要对网页进行各种操作,比如点击、刷新、保存等。
点击展开新的页面,点击方法:element.click()
其他主要操作方法:
- 请求某个url:driver.get(url)
- 刷新页面操作:refresh()
- 回退到之前的页面:back()
- 前进到之后的页面:forward()
- 获取当前访问页面url:current_url
- 获取当前浏览器标题:title
- 保存图片:get_screenshot_as_png()/get_screenshot_as_file(file)
- 网页源码:page_source
使用selenium抢购商品(只供学习,不保证效果)
- 导入selenium相关模块
# 导入库
from selenium import webdriver
import datetime
import time打开chrome浏览器
# 记录时间
now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
# 打开chrome
browser = webdriver.Chrome()
2. 登录淘宝
# 登录
def login():# 打开淘宝首页,通过扫码登录browser.get("https://www.taobao.com/")time.sleep(3)# 打开登录界面find_login = browser.find_element_by_link_text("亲,请登录")if find_login:find_login.click()print("请扫码登录")time.sleep(10)login()
3. 选择购物车列表
# 选择购物车列表
def picking(method):# 是否全选购物车if method == 0:while True:try:if browser.find_element_by_id("J_SelectAll1"):browser.find_element_by_id("J_SelectAll1").click()print('全选购物车成功')breakexcept:print(f"找不到购买按钮")else:print(f"请手动勾选需要购买的商品")time.sleep(1)
4. 点击结算按钮
# 点击结算按钮
def settlement():while True:try:if browser.find_element_by_id('J_SelectedItemsCount').text >= '1':browser.find_element_by_link_text("结 算").click()print(f"结算成功,准备提交订单")breakexcept:pass
5. 点击提交订单按钮
# 点击提交订单按钮
def submitting():while True:try:if browser.find_element_by_link_text('提交订单'):browser.find_element_by_link_text('提交订单').click()print(f"抢购成功,请尽快付款")breakexcept:print(f"再次尝试提交订单")
6. 开始执行抢购
def run(times):# 打开购物车列表页面print('正在抢购!')browser.get("https://cart.taobao.com/cart.htm")time.sleep(3)while True:now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')# 对比时间,时间到的话就点击结算if now > times:# 全选购物车picking(0)# 点击结算按钮settlement()# 提交订单submitting()print(now)break
结论
selenium还有很多强大的功能,后续会继续分享,也期待大家留言说说你的selenium使用心得。
最后补充一句,因为selenium涉及操作网页,所以需要使用者有一定的html知识储备,大家学之前可以先去看看html基础知识。
如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!
最后基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等配套学习资源【免费】。
selenium入门详细指南(附淘宝抢购案例)相关推荐
- Git快速入门篇—— Windows版本淘宝镜像快速下载安装详细步骤及简单入门教程(附带图文教程)
Git快速入门篇-- Windows版本淘宝镜像快速下载安装详细步骤及简单入门教程(附带图文教程) 前言:我们平时在整理代码的时候,尤其是与别人一起开发项目的时候,常常涉及到代码的更新,因此代码版本问 ...
- 运用selenium库写淘宝抢购详解【3】(文末附带源码)
#每日一更[3] 今天讲的是用selenium库写一个淘宝抢购程序,10.19亲测可用 1.淘宝抢购的思路和上一篇的思路类似,通过打开浏览器筛选浏览器内的标签,并点击来实现自动化 #下面来想一下思路 ...
- 使用Python编写淘宝抢购代码
在 Python 中编写淘宝抢购代码,需要使用一些第三方库来帮助我们登录淘宝并获取商品信息.具体步骤如下: 安装所需的第三方库.需要使用的库有:requests.selenium 和 chromedr ...
- 淘宝抢购python代码-仅供学习
淘宝抢购python代码-仅供学习 需要使用的python工具包有 from selenium import webdriver import datetime import time from se ...
- python爬虫实例电商_如何用代码爬抓电商数据(附淘宝API调用实例)
原标题:如何用代码爬抓电商数据(附淘宝API调用实例) 欢迎关注天善智能 hellobi.com,我们是专注于商业智能BI,大数据,数据分析领域的垂直社区,学习.问答.求职,一站式搞定! 对商业智能B ...
- 如何用代码爬抓电商数据(附淘宝API调用实例)
2019独角兽企业重金招聘Python工程师标准>>> 如何用代码爬抓电商数据(附淘宝API调用实例) http://www.21ds.cn/2190.html 转载于:https: ...
- taobao.trade.fullinfo.get( 获取单笔交易的详细信息 )、淘宝店铺卖出订单详情接口,店铺订单明文接口,店铺订单解密接口,店铺订单消息推送接口
taobao.trade.fullinfo.get( 获取单笔交易的详细信息 ),淘宝店铺卖出订单详情接口,对接该接口可用于获取淘宝店铺订单详情信息,包括卖出订单详情,买家姓名,买家电话,买家收货地址 ...
- taobao.trade.fullinfo.get( 获取单笔交易的详细信息 )、淘宝店铺卖出订单详情接口,淘宝店铺订单明文接口,淘宝店铺订单解密接口
taobao.trade.fullinfo.get( 获取单笔交易的详细信息 ),淘宝店铺卖出订单详情接口,对接该接口可用于获取淘宝店铺订单详情信息,包括卖出订单详情,买家姓名,买家电话,买家收货地址 ...
- Android App支付:支付宝SDK接入详细指南(附官方支付demo)
Android App支付:支付宝SDK接入详细指南(附官方支付demo) 前言 一家移动互联网公司,说到底,要盈利总是需要付费用户的,自己开发支付系统对于资源有限的公司来说显然不太明智,国内已经有多 ...
- 解决selenium + chromedriver模拟登录被淘宝反爬
解决selenium + chromedriver模拟登录被淘宝反爬 问题 使用 selenium + webdriver 模拟淘宝登录时,出现滑动验证码反爬,尝试程序模拟滑动滑块,以及在程序打开的 ...
最新文章
- 数据结构和算法动态可视化
- c 语言文字输出函数,c/c++语言中文字输出函数总结
- 使用libvirt管理kvm(virsh篇)
- DayDayUp:发明专利授予条件、撰写发明专利的注意事项以及申辩模板
- Java Servlet 过滤器与 springmvc 拦截器的区别?
- 【C/C++学院】0828-数组与指针/内存分配/数据结构数组接口与封装
- 用户代码未处理nullreferenceexception_CSAPP 第九章整理 未完成
- python如何移动图片_Pygame的图像移动|python基础教程|python入门|python教程
- 智能升级新阶段,新云原生企业如何加速出圈?
- 转:2016年崛起的js项目
- 代码积累与编程能力哪个更重要
- origin画图初步入门
- 一级建造师-通信-光电缆检验
- 计算思维是运用计算机科学的什么进行,什么是计算思维?
- MYSQL 列转行方法
- 酒类电商1919获阿里巴巴20亿元战略投资,估值达70亿元
- 政策热市场冷 中国新能源汽车遇尴尬
- 给孩子炖鳄鱼?时代变了,就比谁会玩儿...
- 调查显示企业SOA应用率仍然很低
- PaddlePaddle深度学习实战——英法文翻译机