python实现登录购物_python+selenium实现经京东登录+购物+支付
importjsonfrom time importsleepfrom selenium importwebdriverimportchardetfrom selenium.webdriver importActionChains#初始化浏览器#driver = webdriver.Chrome(executable_path = "e:\\chromedriver")
driver = webdriver.Firefox(executable_path = "e:\\geckodriver")#driver = webdriver.Ie(executable_path = "e:\\IEDriverServer")
#定义全局遍变量url
url = "https://www.jd.com"
deflogin_cookie():#打开浏览器
driver.get(url)#浏览器最大化
driver.maximize_window()#定位登录button
driver.find_element_by_xpath('//a[@class = "link-login"]').click()#定位账户登录
driver.find_element_by_xpath('//a[text()="账户登录"]').click()#定位账号框,并输入账号
driver.find_element_by_xpath('//input[@name="loginname"]').send_keys("18501057627")#定位密码框,并输入密码
driver.find_element_by_xpath('//input[@type="password"]').send_keys("GaoXXX")#点击登录button
driver.find_element_by_xpath('//a[@id="loginsubmit"]').click()
sleep(10)#需要手动滑动图片,通过校验
#获取cookie
my_cookie =driver.get_cookies()print(my_cookie)
data_cookie=json.dumps(my_cookie)
with open("jd_coolies","w") as fp:
fp.write(data_cookie)#使用cookies
defget_url_with_cookies():#访问网站,清空旧cookies信息
driver.get(url)
driver.delete_all_cookies()#获取cookies文件
with open("jd_coolies","r") as fp:
jd_cookies=fp.read()#加载cookies信息
jd_cookies_dict =json.loads(jd_cookies)for cookie injd_cookies_dict:
driver.add_cookie(cookie)#验证是否登录成功
driver.get(url)assert '退出' indriver.page_sourceprint(url)#添加购物车
defshopping():
driver.get('https://www.jd.com/')#定位搜索框,并输入:Python自动化
driver.find_element_by_xpath("//input[@clstag='h|keycount|head|search_c']").send_keys('Python自动化')#定位“搜索”button,并点击
driver.find_element_by_xpath('//button[@clstag="h|keycount|head|search_a"]/i').click()#获取当前窗口句柄
now_handle =driver.current_window_handle#打印当前窗口句柄
print("添加购物车窗口")print(now_handle)#判断 不是 当前窗口句柄
#获取所有窗口句柄
all_handles =driver.window_handles#循环遍历所有新打开的窗口句柄,也就是说不包括主窗口
for handle inall_handles:if handle !=now_handle:#切换窗口
driver.switch_to.window(handle)
sleep(5)#点击加入购物车
driver.find_element_by_xpath("//div[@class='itemInfo-wrap']/div/div/a[contains(@onclick,'加入购物车')]").click()#调用driver的page_source属性获取页面源码
pageSource =driver.page_source#断言页面源码中是否包含“商品已成功加入购物车”关键字,以此判断页面内容是否正确
assert "商品已成功加入购物车" inpageSourceprint("商品已成功加入购物车")defpayOrder():## 获取当前窗口句柄
current_handle =driver.current_window_handle#打印当前窗口句柄
print(current_handle)print("点击购物车")#点击“我的购物车”
driver.find_element_by_xpath("//a[text()='我的购物车']").click()
sleep(2)
all_handles=driver.window_handles#循环遍历所有新打开的窗口句柄,也就是说不包括主窗口
for handle inall_handles:if handle !=current_handle:#切换窗口
driver.switch_to.window(handle)
sleep(5)#点击“去结算”button
driver.find_element_by_xpath("//div[@id='cart-floatbar']/div/div/div/div[2]/div[4]/div[1]/div/div[1]").click()#driver.find_element_by_xpath("//a[contains(text(),'去结算')]").click()
sleep(2)#点击“提交订单”button
driver.find_element_by_xpath("//button[@id='order-submit']").click()#调用driver的page_source属性获取页面源码
pageSource =driver.page_source#断言页面源码中是否包含“商品已成功加入购物车”关键字,以此判断页面内容是否正确
assert "订单提交成功,请尽快付款" inpageSourceif __name__=="__main__":
login_cookie()
get_url_with_cookies()
shopping()
payOrder()
python实现登录购物_python+selenium实现经京东登录+购物+支付相关推荐
- python实现自动登录软件_Python selenium实现微博自动登录的示例代码
(一)编程环境 操作系统:Win 10 编程语言:Python 3.6 (二)安装selenium 这里使用selenium实现. 如果没有安装过python的selenium库,则安装命令如下 pi ...
- python用selenium 验证码图片_Python +Selenium解决图片验证码登录或注册问题(推荐)
1. 解决思路 首先要获得这张验证码的图片,但是该图片一般都是用的js写的,不能够通过url进行下载. 解决方案:截图然后根据该图片的定位和长高,使用工具进行裁剪 裁剪完毕之后,使用工具解析该图片. ...
- python自动登录教程_python+selenium实现163邮箱自动登陆的方法
本文介绍了 让我们先来预览一下代码运行效果吧: 首先分析163邮箱登陆页面的网页结构(按F12或单击鼠标右键选择审查元素) 1.定位到登陆框(注意登录框是一个iframe,如果不定位到iframe的话 ...
- 自动化测试python selenium案例_Python selenium自动化测试框架实战--登录测试案例
本文为主要帮助会写基本selenium测试代码又没有规划的同仁. 本文应用到POM模型.selenium.unittest框架.configparser配置文件.smtplib邮件发送.HTMLTes ...
- python模拟登录163邮箱_python+selenium 模拟163邮箱登录
代码如下: from selenium import webdriver from time import sleep driver=webdriver.Chrome() driver.get(&qu ...
- python资源百度云_Python Selenium 百度云分享链接资源 批量保存
[Python] 纯文本查看 复制代码# -*- coding: UTF-8 -*- from docx import Document #安装 pip install python-docx imp ...
- python自动化控制运动_Python +selenium自动化帮你预订运动场地
导语 炎热的夏天,正是换上短裤短裙晒身材的时候.但是,身材不好怎么办?运动是一个选择,特别是像我们程序员行业,天天坐在空调办公室,更应该出出汗,正所谓:冬练三九,夏练三伏. 下班后,约上公司的妹子,打 ...
- python测试脚本截图_Python+selenium实现截图图片并保存截取的图片
这篇文章介绍如何利用Selenium的方法进行截图,在测试过程中,是有必要截图,特别是遇到错误的时候进行截图.在selenium for Python中主要有三个截图方法,我们挑选其中最常用的一种. ...
- python自动投递简历_python selenium 实现简历自动刷新
1 安装Python 和 selenium (1)下载Python 官网地址: https://www.python.org/ftp/python/3.6.8/python-3.6.8-amd64.e ...
最新文章
- oracle中怎样查询用户权限
- 汇编语言随笔(6)-大小写转换与实验6(双重循环:需要保存cx值)
- 爬虫学习笔记(二十四)—— pyspider框架
- 迭代最近点(Iterative Closest Point, ICP)算法及matlab实现
- Cannot call sendError() after the response has been committed
- goldengate for oracle 10g学习
- SAP CDS view里的association会被编译成LEFT OUTER MANY TO ONE JOIN
- WIN32:API串口通讯实例教程
- git的一些简单用法
- 怎么把ide改成ahci_小科普 | 老电脑不重装系统,硬盘IDE模式如何改成AHCI?
- JAVA----JSON序列化错误:InvalidDefinitionException: No serializer found for class org.apache.ibatis.execut
- Progressive Layered Extraction (PLE)
- 苹果开发者账户续费 支付授权失败
- 图像分割-连通区域分析
- 论文解读:Making Pre-trained Language Models Better Few-shot Learners(LM-BFF)
- W ndows7蓝屏0x00000024,Win7蓝屏代码0x00000024修复方法
- 学习笔记(29):A110测试-测试课程申请22
- 蓝桥杯嵌入式竞赛-数码管学习笔记(个人备份,以便日后查找)
- java循环链表实现魔术师发牌问题
- 达梦数据库全文索引使用示例