淘宝自动抢购, Webdriver浏览器常用的元素定位
#!/usr/bin/env python
'''
作者:张铭达
功能:淘宝秒杀购物
版本:0.2
日期2019-06-16
''' from selenium import webdriver
import time,datetime driver = webdriver.Chrome()
driver.maximize_window() username = '张铭达33333'
class TaoBao(object):
def __init__(self):
pass
def login(self):
driver.get('https://www.taobao.com')
time.sleep(0.5)
loginelement = driver.find_element_by_link_text("亲,请登录")
if loginelement:
loginelement.click()
while True:
try:
login_status = driver.find_element_by_link_text('张铭达33333')
print('已登录')
return True
except:
print('等待扫码或密码登录...')
time.sleep(1) def daojishi(self,buytime):
'''
:param buytime: 输入字符串时间
:return: 返回当前距离购买时间还有多少天,小时,分钟,秒
'''
daojishi = datetime.datetime.strptime(buy_time, '%Y-%m-%d %H:%M:%S') - datetime.datetime.now()
'''这个时间差为datetime.timedelta格式,返回值中days + seconds 为总计的时间,够一天的时间存在days里面,不足的存在seconds里面'''
days = daojishi.days
hour = daojishi.seconds // 3600 #不足一天,看有多少个小时。
mins = (daojishi.seconds % 3600) // 60 #不足一小时的看有多少个分钟
seconds = daojishi.seconds % 60 # 不足一分钟的时间看有多少秒
return days,hour,mins,seconds #返回值便于更直观看剩余多少时间:时分秒
def chose_commodity(self,commodity_list):
# '''勾选指定商品'''
if commodity_list:
for commodity in commodity_list:
commodity_path_id = '//label[@for="%s"]' % commodity
try:
if driver.find_element_by_xpath(commodity_path_id):
driver.find_element_by_xpath(commodity_path_id).click()
print('勾选:', commodity_path_id, '成功')
except:
print('勾选 %s 失败!' % commodity_path_id)
else:
# '''勾选购物车全部商品'''
if driver.find_element_by_id("J_SelectAll1"):
driver.find_element_by_id("J_SelectAll1").click() def buy_all(self,buy_time,commodity_list=None):
# driver.get("https://cart.taobao.com/cart.htm")
driver.find_element_by_id('mc-menu-hd').click() #点击购物车连接
while True:
#勾选商品
self.chose_commodity(commodity_list)
''' 对比当前时间到的话就点击结算,字符串可以直接比较时间大小'''
now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
if now > buy_time:
print('正在购物......')
try:
# 点击结算按钮
if driver.find_element_by_id("J_Go"):
driver.find_element_by_id("J_Go").click()
time.sleep(0.5)
#点击提交订单按钮
driver.find_element_by_link_text('提交订单').click()
print('订单已提交,请付款')
except:
print('购物车没有商品或者已经提交。')
else:
days,hour,mins,seconds = self.daojishi(buy_time)
print('当前{} 距离 {} 倒计时还有{}天 {}小时 {}分钟 {}秒'.format(now,buy_time,days, hour, mins, seconds))
if days > 1 or hour > 1 or mins > 2:
time.sleep(60)
driver.refresh()
time.sleep(1) if __name__ == '__main__':
taobao = TaoBao()
if taobao.login():
commodity_list = ['J_CheckBox_1338514994390',
'J_CheckBox_1337098032426',
'J_CheckBox_1328527465471']
buy_time = '2019-06-18 23:59:59'
taobao.buy_all(buy_time,commodity_list)
# taobao.daojishi(buy_time)
go_shoping0.2
#!/usr/bin/env python
'''
作者:张铭达
功能:淘宝秒杀购物
版本:0.2
日期2019-06-16
''' from selenium import webdriver
import time,datetime driver = webdriver.Chrome()
driver.maximize_window() username = '张铭达33333'
class TaoBao(object):
def __init__(self):
pass
def login(self):
driver.get('https://www.taobao.com')
time.sleep(0.5)
loginelement = driver.find_element_by_link_text("亲,请登录")
if loginelement:
loginelement.click()
while True:
try:
login_status = driver.find_element_by_link_text('张铭达33333')
print('已登录')
return True
except:
print('等待扫码或密码登录...')
time.sleep(1) def daojishi(self,buytime):
'''
:param buytime: 输入字符串时间
:return: 返回当前距离购买时间还有多少天,小时,分钟,秒
'''
daojishi = datetime.datetime.strptime(buy_time, '%Y-%m-%d %H:%M:%S') - datetime.datetime.now()
'''这个时间差为datetime.timedelta格式,返回值中days + seconds 为总计的时间,够一天的时间存在days里面,不足的存在seconds里面'''
days = daojishi.days
hour = daojishi.seconds // 3600 #不足一天,看有多少个小时。
mins = (daojishi.seconds % 3600) // 60 #不足一小时的看有多少个分钟
seconds = daojishi.seconds % 60 # 不足一分钟的时间看有多少秒
return days,hour,mins,seconds #返回值便于更直观看剩余多少时间:时分秒
def chose_commodity(self,commodity_list):
# '''勾选指定商品'''
if commodity_list:
for commodity in commodity_list:
commodity_path_id = '//label[@for="%s"]' % commodity
try:
if driver.find_element_by_xpath(commodity_path_id):
driver.find_element_by_xpath(commodity_path_id).click()
print('勾选:', commodity_path_id, '成功')
except:
print('勾选 %s 失败!' % commodity_path_id)
else:
# '''勾选购物车全部商品'''
if driver.find_element_by_id("J_SelectAll1"):
driver.find_element_by_id("J_SelectAll1").click() def buy_all(self,buy_time,commodity_list=None):
# driver.get("https://cart.taobao.com/cart.htm")
time.sleep(1)
driver.find_element_by_partial_link_text('购物车').click()#点击购物车连接
# driver.find_element_by_id('mc-menu-hd').click() #点击购物车连接
time.sleep(0.5)
while True:
#勾选商品
self.chose_commodity(commodity_list)
''' 对比当前时间到的话就点击结算,字符串可以直接比较时间大小'''
now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
if now > buy_time:
print('正在购物......')
try:
# 点击结算按钮
if driver.find_element_by_id("J_Go"):
driver.find_element_by_id("J_Go").click()
time.sleep(0.5)
#点击提交订单按钮
driver.find_element_by_link_text('提交订单').click()
print('订单已提交,请付款')
except:
print('购物车没有商品或者已经提交。')
else:
days,hour,mins,seconds = self.daojishi(buy_time)
print('当前{} 距离 {} 倒计时还有{}天 {}小时 {}分钟 {}秒'.format(now,buy_time,days, hour, mins, seconds))
if days > 1 or hour > 1 or mins > 2:
time.sleep(60)
driver.refresh()
time.sleep(1) if __name__ == '__main__':
taobao = TaoBao()
if taobao.login(): #如果登录成功就勾选购物车,并且下单
#商品列表lable标签 浏览器提前用开发者模式获取
commodity_list = ['J_CheckBox_1338514994390',
'J_CheckBox_1337098032426',
'J_CheckBox_1328527465471']
buy_time = '2019-06-18 23:59:59'
taobao.buy_all(buy_time,commodity_list)
# taobao.daojishi(buy_time)
0.3版本
三. 安装三大浏览器驱动driver
1.chromedriver 下载地址:https://code.google.com/p/chromedriver/downloads/list
2.Firefox的驱动geckodriver 下载地址:https://github.com/mozilla/geckodriver/releases/
3.IE的驱动IEdriver 下载地址:http://www.nuget.org/packages/Selenium.WebDriver.IEDriver/
---------------------
作者:huhu8812
来源:CSDN
原文:https://blog.csdn.net/azsx02/article/details/68947429
版权声明:本文为博主原创文章,转载请附上博文链接!
淘宝自动抢购, Webdriver浏览器常用的元素定位的更多相关文章
- Chrome浏览器插件开发-淘宝自动登录
浏览器插件的介绍 Chrome浏览器插件开发的准备工作 manifest.json配置介绍 页面如何注入scripts文件 一. 浏览器插件的介绍 浏览器插件是一种遵循一定规范的应用程序接口编写出来的 ...
- 淘宝自动登录2.0,新增Cookies序列化
前段时间时间为大家讲解了如何使用requests库模拟登录淘宝,而今天我们将对该功能进行丰富.所以我们把之前的那个版本定为1.0,而今天修改的版本定为2.0.版本的地跌意味着功能的升级,那今天的2.0 ...
- 利用Selenium+java实现淘宝自动结算购物车商品(附源代码)
转载请声明原文地址! 本次的主题是利用selenium+java实现结算购买购物车中的商品. 话不多说,本次首先要注意的是谷歌浏览器的版本,浏览器使用的驱动版本,selenium的jar包版本. ...
- Android高仿京东淘宝自动无限循环轮播控件的实现思路和过程
在App的开发中,很多的时候都需要实现类似京东淘宝一样的自动无限轮播的广告栏,所以就自己写了一个,下面是我自定义控件的实现思路和过程. 一.自定义控件属性 新建自定义控件SliderLayout继承于 ...
- python+selenium自动测试之WebDriver的常用API(基础篇一)
基于python3.6,selenium3.141,详细资料介绍查看官方API文档,点击这里 一.对浏览器操作 driver = webdriver.Chrome() # 初始化chrome driv ...
- Webdriver常用的元素定位
Webdriver常用定位元素的方法有以下八种: id.name.class name.tag name.link text.partial link text.xpath.class selecto ...
- java selenium webdriver第二讲 页面元素定位
自动化测试实施过程中,测试程序中常用的页面操作有三个步骤 1.定位网页上的页面元素,并存储到一个变量中 2.对变量中存储的页面元素进行操作,单击,下拉或者输入文字等 3.设定页面元素的操作值,比如,选 ...
- python+selenium自动测试之WebDriver的常用API(基础篇二)
本篇介绍一下python+selenium复杂操作的处理,基于python3.6,selenium3.141,详细资料介绍查看官方API文档,点击这里 一.常见特殊情况处理如iframe/弹窗处理 有 ...
- python(27) 抓取淘宝买家秀
selenium 是Web应用测试工具,可以利用selenium和python,以及chromedriver等工具实现一些动态加密网站的抓取.本文利用这些工具抓取淘宝内衣评价买家秀图片. 准备工作 下 ...
随机推荐
- Codeforces 1442D - Sum(找性质+分治+背包)
Codeforces 题面传送门 & 洛谷题面传送门 智商掉线/ll 本来以为是个奇怪的反悔贪心,然后便一直往反悔贪心的方向想就没想出来,看了题解才发现是个 nb 结论题. Conclusio ...
- IDE 常用配置
启动进入欢迎页(项目选择页),而非直接进入项目 File > Settings > Appearance & Behavior > System Settings 在Star ...
- 植物GO注释
本文主要是对没有GO term库的植物进行注释. 1.选用AgriGo 进行注释,在agriGO中点击species后,查看与你目标物种相近的物种作为库 2.比如我以甜菜为例 为了找到和GO term ...
- DRF请求流程及主要模块分析
目录 Django中CBV请求生命周期 drf前期准备 1. 在views.py中视图类继承drf的APIView类 2. drf的as_view()方法 drf主要模块分析 1. 请求模块 2. 渲 ...
- 卷积神经网络(Convolutional Neural Networks)CNN
申明:本文非笔者原创,原文转载自:http://www.36dsj.com/archives/24006 自今年七月份以来,一直在实验室负责卷积神经网络(Convolutional Neural ...
- 日常Java 2021/10/10
多态就是同一个行为具有多个不同表现形式的能力 多态就是同一个接口,使用不同的实例而执行不同操作 多态的优点 1.消除类型之间的耦合关系 2.可替换性 3.可扩充性 4.接口性 5.灵活性 6.简化性 ...
- 学习java 7.5
学习内容: Alt + Insert 快捷键 根据需要选择操作 继承的格式 public class 子类名 extends 父类名{} 继承好处:提高了代码的复用性,维护性 弊端:改变父类,子类也改 ...
- tomcat拦截特殊字符报400,如 "|" "{" "}" ","等符号的解决方案
最近在做一个项目,需要对外暴露两个接口接收别人给的参数,但是有一个问题就是对方的项目是一个老项目,在传参数的时候是将多个字符放在一个参数里面用"|"进行分割,然而他们传参数的时候又 ...
- 文件读写以及NMEA码中GPS信息的提取
首先先了解下什么是NMEA码,这里有很好的解释,就不直接搬运了 http://www.gpsbaby.com/wz/nmea.html 首先要找到包含GPS信息的文本行,即字符串GPGGA所在行 $G ...
- 接口测试 python+PyCharm 环境搭建
1.配置Python环境变量 a:我的电脑->属性->高级系统设置->环境变量->系统变量中的PATH变量. 变量名:PATH 修改变量值为:;C:\Python27 ...