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实现经京东登录+购物+支付相关推荐

  1. python实现自动登录软件_Python selenium实现微博自动登录的示例代码

    (一)编程环境 操作系统:Win 10 编程语言:Python 3.6 (二)安装selenium 这里使用selenium实现. 如果没有安装过python的selenium库,则安装命令如下 pi ...

  2. python用selenium 验证码图片_Python +Selenium解决图片验证码登录或注册问题(推荐)

    1. 解决思路 首先要获得这张验证码的图片,但是该图片一般都是用的js写的,不能够通过url进行下载. 解决方案:截图然后根据该图片的定位和长高,使用工具进行裁剪 裁剪完毕之后,使用工具解析该图片. ...

  3. python自动登录教程_python+selenium实现163邮箱自动登陆的方法

    本文介绍了 让我们先来预览一下代码运行效果吧: 首先分析163邮箱登陆页面的网页结构(按F12或单击鼠标右键选择审查元素) 1.定位到登陆框(注意登录框是一个iframe,如果不定位到iframe的话 ...

  4. 自动化测试python selenium案例_Python selenium自动化测试框架实战--登录测试案例

    本文为主要帮助会写基本selenium测试代码又没有规划的同仁. 本文应用到POM模型.selenium.unittest框架.configparser配置文件.smtplib邮件发送.HTMLTes ...

  5. python模拟登录163邮箱_python+selenium 模拟163邮箱登录

    代码如下: from selenium import webdriver from time import sleep driver=webdriver.Chrome() driver.get(&qu ...

  6. python资源百度云_Python Selenium 百度云分享链接资源 批量保存

    [Python] 纯文本查看 复制代码# -*- coding: UTF-8 -*- from docx import Document #安装 pip install python-docx imp ...

  7. python自动化控制运动_Python +selenium自动化帮你预订运动场地

    导语 炎热的夏天,正是换上短裤短裙晒身材的时候.但是,身材不好怎么办?运动是一个选择,特别是像我们程序员行业,天天坐在空调办公室,更应该出出汗,正所谓:冬练三九,夏练三伏. 下班后,约上公司的妹子,打 ...

  8. python测试脚本截图_Python+selenium实现截图图片并保存截取的图片

    这篇文章介绍如何利用Selenium的方法进行截图,在测试过程中,是有必要截图,特别是遇到错误的时候进行截图.在selenium for Python中主要有三个截图方法,我们挑选其中最常用的一种. ...

  9. python自动投递简历_python selenium 实现简历自动刷新

    1 安装Python 和 selenium (1)下载Python 官网地址: https://www.python.org/ftp/python/3.6.8/python-3.6.8-amd64.e ...

最新文章

  1. oracle中怎样查询用户权限
  2. 汇编语言随笔(6)-大小写转换与实验6(双重循环:需要保存cx值)
  3. 爬虫学习笔记(二十四)—— pyspider框架
  4. 迭代最近点(Iterative Closest Point, ICP)算法及matlab实现
  5. Cannot call sendError() after the response has been committed
  6. goldengate for oracle 10g学习
  7. SAP CDS view里的association会被编译成LEFT OUTER MANY TO ONE JOIN
  8. WIN32:API串口通讯实例教程
  9. git的一些简单用法
  10. 怎么把ide改成ahci_小科普 | 老电脑不重装系统,硬盘IDE模式如何改成AHCI?
  11. JAVA----JSON序列化错误:InvalidDefinitionException: No serializer found for class org.apache.ibatis.execut
  12. Progressive Layered Extraction (PLE)
  13. 苹果开发者账户续费 支付授权失败
  14. 图像分割-连通区域分析
  15. 论文解读:Making Pre-trained Language Models Better Few-shot Learners(LM-BFF)
  16. W ndows7蓝屏0x00000024,Win7蓝屏代码0x00000024修复方法
  17. 学习笔记(29):A110测试-测试课程申请22
  18. 蓝桥杯嵌入式竞赛-数码管学习笔记(个人备份,以便日后查找)
  19. java循环链表实现魔术师发牌问题
  20. 达梦数据库全文索引使用示例

热门文章

  1. javaScript中的map对象
  2. AI开发者看过来:搞定这四道赛题 赢取30万大奖
  3. 我的家用AMD双核装机方案
  4. Centos7查看端口占用情况
  5. 出现依赖关系时用aptitude也无法解决的方法
  6. NTP时间服务器授时
  7. hive-nvl 函数
  8. 电子招标采购系统源码之为何推荐电子招采
  9. bootstrap row 下面的 col-md 高度相等 高度 一致 高度一样 有大用
  10. linux4.12 bonding简介