买 iPhone 12 首发还用抢吗?一键自动化Python脚本帮助你实现无脑冲pro

不废话 先看实现效果

在这里插入图片描述

简介

本案例仍然隶属于自动化测试专题的一个小案例
Selenium和WebServer搭配实现的自动化脚本
Selenium本身是用于测试,但数据采集和爬虫也可以使用

说明

源码如下

from datetime import datetime

from selenium import webdriver
import time


# 访问测试的url定义
url = "https://www.apple.com.cn/cn-k12/shop/buy-iphone/iphone-12-pro"

# 1. 创建浏览器对象  这里的Chrome中的变量是chromedriver的驱动地址
driver = webdriver.Chrome('./chromedriver')
# 2. 跳转到apple官网
driver.get(url)
# 3. 隐式等待 设置 防止预售的网络的阻塞
driver.implicitly_wait(5)

# 4. 开始选择规格
# 4.1 必须选Pro
# element = driver.find_element_by_id('Item1-dimensionScreensize-6_1inch')
element_sku = driver.find_element_by_xpath('//*[@id="Item1"]/div/fieldset/div[2]/div[1]/div/div')
driver.implicitly_wait(5)
element_sku.click()
# 4.2 海蓝色
# element_color = driver.find_element_by_xpath('//*[@id="dimensionColor-pacificblue"]')
element_color = driver.find_element_by_id('dimensionColor-pacificblue')
driver.execute_script("arguments[0].click();", element_color)
# 4.3 大内存512G
element_memory = driver.find_element_by_css_selector('#Item3-dimensionCapacity-512gb')
driver.execute_script("arguments[0].click();", element_memory)
# 4.4 没有旧机抵扣
element_old = driver.find_element_by_xpath('//*[@id="noTradeIn"]')
driver.execute_script("arguments[0].click();", element_old)
# 4.5 无Applecare
element_care = driver.find_element_by_id('applecareplus_58_noapplecare')
driver.execute_script("arguments[0].click();", element_care)
# 4.6 添加到购物袋
driver.implicitly_wait(3)
element_car = driver.find_element_by_xpath('/html/body/div[2]/div[7]/div[1]/div/store-provider/step1-flagship/div/div[3]/summary-builder/div[2]/div[1]/div/div[1]/div[2]/div/div/form/div/span/button')
# element_car = driver.find_element_by_name('add-to-cart')
# element_car = driver.find_element_by_css_selector('.add-to-cart')
if element_car is not True:
    element_car = driver.find_element_by_xpath('//*[@id="primary"]/summary-builder/div[2]/div[1]/div/div[1]/div[2]/div/div/form/div/span/button')
driver.execute_script("arguments[0].click();", element_car)

# 5 页面跳转查看购物袋
driver.implicitly_wait(10)
element_check = driver.find_element_by_xpath('//*[@id="root"]/div[2]/div/div/div[2]/div/form/button')
driver.execute_script("arguments[0].click();", element_check)

# 6 结账
driver.implicitly_wait(10)
element_check_out = driver.find_element_by_xpath('//*[@id="shoppingCart.actions.checkout"]')
driver.execute_script("arguments[0].click();", element_check_out)

# 7 结账界面跳转时间较长  隐式等待多等一会
driver.implicitly_wait(30)
# 7.1 输入用户名
element_username = driver.find_element_by_xpath('/html/body/div[2]/div[4]/div/div[2]/div[1]/div/div[1]/div/div/form/fieldset/div/div[1]/input')
time.sleep(3)
element_username.send_keys('13133333333')
# driver.execute_script("arguments[0].send_keys('13133333333');", element_username)
# 7.2 输入密码
element_password = driver.find_element_by_xpath('/html/body/div[2]/div[4]/div/div[2]/div[1]/div/div[1]/div/div/form/fieldset/div/div[2]/input')
time.sleep(3)
element_password.send_keys('xxxxxxxxxc')
# driver.execute_script("arguments[0].send_keys('xxxxxxx');", element_password)
# //*[@id="recon-0-3"]  输入appid
# //*[@id="recon-0-5"]  输入密码
# 7.3 点击结账
element_to_order = driver.find_element_by_xpath('/html/body/div[2]/div[4]/div/div[2]/div[1]/div/div[1]/div/div/form/div/button')
driver.execute_script("arguments[0].click();", element_to_order)

# 8 最终结账
driver.implicitly_wait(5)
# 8.1 地址
element_address = driver.find_element_by_xpath('//*[@id="checkout-container"]/div/div[8]/div[1]/div[2]/div/div/div/div[1]/div[2]/fieldset/div/div/div/div[1]/div/div[1]/label')
driver.execute_script("arguments[0].click();", element_address)
# 8.2 送货时间
# element_iphone_time = driver.find_element_by_xpath('//*[@id="checkout-container"]/div/div[6]/div[1]/div[2]/div/div/div[1]/div/div/div/div/div[2]/div/div[3]/fieldset/div/div/label')
# driver.execute_script("arguments[0].click();", element_iphone_time)
# 8.3 下一步
element_to_alipay = driver.find_element_by_xpath('/html/body/div[2]/div[4]/div/div[8]/div[1]/div[2]/div/div/div/div[1]/div[5]/div/div/div/div/div/button')
# element_to_alipay = driver.find_element_by_xpath('//*[@id="rs-checkout-continue-button-bottom"]')
if element_to_alipay is not True:
    element_to_alipay = driver.find_element_by_css_selector('#addressVerification')
driver.execute_script("arguments[0].click();", element_to_alipay)

# 9 选择送达日期
# 9.1
element_iphone_time = driver.find_element_by_xpath('//*[@id="checkout-container"]/div/div[6]/div[1]/div[2]/div/div/div[1]/div/div/div/div/div[2]/div/div[3]/fieldset/div/div/label')
driver.execute_script("arguments[0].click();", element_iphone_time)
# 9.2
element_next = driver.find_element_by_xpath('/html/body/div[2]/div[4]/div/div[6]/div[1]/div[2]/div/div/div[2]/div/div/div/div/button')
driver.execute_script("arguments[0].click();", element_next)

# 10. 支付宝支付
# 10.1 支付宝
element_alipay = driver.find_element_by_xpath('//*[@id="checkout.billing.billingOptions.options.0-selector"]/label')
driver.execute_script("arguments[0].click();", element_alipay)
# 10.2 检查订单
element_check_order = driver.find_element_by_xpath('//*[@id="rs-checkout-continue-button-bottom"]')
driver.execute_script("arguments[0].click();", element_check_order)
# 10.3 勾选选项 同意
element_agree = driver.find_element_by_xpath('//*[@id="terms-checkbox-segmentSpecificTerms"]')
driver.execute_script("arguments[0].click();", element_agree)
# 10.4 现在支付
element_pay_now = driver.find_element_by_xpath('/html/body/div[2]/div[4]/div/div[4]/div[1]/div[1]/div/div/div[2]/div[6]/div/div/div/div[1]/button')
driver.execute_script("arguments[0].click();", element_pay_now)

# 11 点击现在支付
element_pay_now_now = driver.find_element_by_xpath('/html/body/div[1]/div[4]/div/div[2]/div[1]/div/div/div[2]/a')
driver.execute_script("arguments[0].click();", element_pay_now_now)

# 11 退出浏览器
time.sleep(10)
# driver.quit()
  • 8
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ricerd_S

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值