Python用selenium实现自动登录和下单的项目实战
作者:小圆- 发布时间:2021-02-04 18:29:44
前言
学python对selenium应该不陌生吧
Selenium 是最广泛使用的开源 Web UI(用户界面)自动化测试套件之一。Selenium 支持的语言包括C#,Java,Perl,PHP,Python 和 Ruby。目前,Selenium Web 驱动程序最受 Python 和 C#欢迎。
Selenium 测试脚本可以使用任何支持的编程语言进行编码,并且可以直接在大多数现代 Web 浏览器中运行。在爬虫领域 selenium 同样是一把利器,能够解决大部分的网页的反爬问题,但也不是万能的,它最明显的缺点就是速度慢。
今天就来看看 咱们应该如何实现简单的自动登录和下单的脚本
前期准备
python 3.8
pycharm专业版
selenium==3.141.0
代码实现思路
打开浏览器
输入网址
登陆
选择商品属性, 点击立即购买
下单
配置浏览器驱动
这里以安装 Chrome 驱动作为演示。但 Chrome 在用 selenium 进行自动化测试时还是有部分bug,常规使用没什么问题,但如果出现一些很少见的报错,可以使用 Firefox 进行尝试,毕竟是selenium 官方推荐使用的。
确定浏览器版本
下载驱动
下载版本相对接近的就行,不用完全一致
将 chromedriver.exe 保存到任意位置,并把当前路径保存到环境变量中(我的电脑>>右键属性>>高级系统设置>>高级>>环境变量>>系统变量>>Path),添加的时候要注意不要把 path 变量给覆盖了,如果覆盖了千万别关机,然后百度
测试是否成功
from selenium import webdriver
# Chrome浏览器
driver = webdriver.Chrome()
代码实现
模块导入
from selenium import webdriver
import time
1. 打开浏览器
driver = webdriver.Chrome()
2. 输入网址
url = 'https://*****.com/item.htm?abbucket=9&id=667918031025&rn=30933d864f689e92fec433592f0dc822'
driver.get(url)
driver.implicitly_wait(10)
3. 登陆(不是经常登录的电脑,需扫码登录)
try:
iframe = driver.find_element_by_css_selector('iframe')
except:
iframe = driver.find_element_by_css_selector('#baxia-dialog-content')
# 切换到嵌套页面
driver.switch_to.frame(iframe)
源码领取:690643772
# 标签别名
# 匹配到二维码并且点击
driver.find_element_by_css_selector('.iconfont.icon-qrcode').click()
# 留几秒钟 需要登陆
while True:
print("###请扫码登陆###")
if driver.title != "商品详情":
break
time.sleep(1)
print("###登陆成功!!!###")
4. 选择商品属性, 点击立即购买
try:
# 选择商品属性
driver.find_element_by_css_selector('.skuValueName').click()
# 点击立即购买
driver.find_element_by_css_selector('div>button>span').click()
源码领取:690643772
except:
# 选择商品属性
driver.find_element_by_css_selector('.tm-clear.J_TSaleProp li').click()
# 点击立即购买
driver.find_element_by_css_selector('#J_LinkBuy').click()
time.sleep(1)
driver.find_element_by_css_selector('.go-btn').click()
input()
5. 下单
最简单的一个步骤:拿出手机,打开支fu宝,扫码付钱就行
最后
来源:https://blog.csdn.net/aliYz/article/details/129150640
猜你喜欢
- 1.二进制读取模式rt 读取文本文件(默认值)rb 读取二进制文件file_name = "C:/Users/cheng/Desk
- 1.字符强转一切如果是字符串进行强制转换, 仅仅就是在原数据类型的两边套上引号2.list : 强制转换成列表""&qu
- 本文实例为大家分享了js实现简单放大镜效果的具体代码,供大家参考,具体内容如下效果效果,鼠标在原图片移动,黄色小盒子跟随鼠标移动,黄色小盒子
- Django 提供了两种方式来执行原生 SQL 代码。一种是使用 raw() 函数,一种是 使用 connection.cursor()。但
- 本文实例讲述了Go语言压缩和解压缩tar.gz文件的方法。分享给大家供大家参考。具体分析如下:golang处理压缩包,最常用的就是tar.g
- 在事务的ACID特性中,原子性(A)、一致性(C)、持久性(D)由undo log和redo log实现,隔离性(I)由锁+MVCC实现un
- 使用Python过程中,经常需要对文件和目录进行操作。所有file类/os/os.path/shutil模块时每个Python程序员必须学习
- 本文实例讲述了python实现的系统实用log类。分享给大家供大家参考。具体如下:每个系统都必不可少会需要一个log类,方便了解系统的运行状
- Python tcp socket编程详解初学脚本语言Python,测试可用的tcp通讯程序:服务器:#!/usr/bin/env pyth
- ThinkPHP模板的empty标签用于判断模板变量是否为空值。ThinkPHP模板empty标签用来判断模板变量是否为空值,其功能相当于P
- 1983年1月19日,苹果公司发布乔布斯领导研制的新一代电脑Lisa,当时Lisa电脑的设计人员就认为,必须将立即执行的命令和需要用户附加输
- IntelliJ IDEA 2021最新激活码超详细教程,成功激活到2099年。每天专业人士测试,保证可以使用才分享给大家的,放心大胆使用哈
- 字符串的相似性比较应用场合很多,像拼写纠错、文本去重、上下文相似性等。评价字符串相似度最常见的办法就是:把一个字符串通过插入、删除或替换这样
- 对一个列表list而言,进行排序是很简单的。正序排序(从小到大)用list.sort() 倒序排序(从大到小)用list.sort
- 目录一 背景二 库简介三 代码3.1 创建表格3.2 增加row3.3 增加column3.4 打印表格3.5 边框操作3.6 输出json
- 这篇文章主要介绍了通过实例了解Python str()和repr()的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参
- 相关推荐:完整的sql中文参考手册(chm)下载 DB2 提供了关连式资料库的查询语言 sql (Structured Query
- 创建项目django-admin startproject meiduo_mall添加工程完整结构包启动前端python -m http.s
- 本文实例讲述了PHP global全局变量的使用与注意事项。分享给大家供大家参考,具体如下:使用global在方法里面声明外部变量为全局变量
- 文档格式的排错 我妈妈_的清单中有数十条菜谱,甚至数百条。如果产生一个致命错误,排错将非常困难 - 你将一行一行地寻找丢失的标记符。如果使用