• iphone14来了,可是约好的你去哪了


    前言

    ⏲️本文阅读时长:约10分钟
    🎯主要目标:
    1.展示iphone14/iphone pro python自动化脚本 Gitee地址
    2.提供有货通知订阅功能,方便老铁们接收到有货通知邮件,点击查看,收到邮件第一时间去官网下单,还是有机会的
    3.更新chromedriver.exe ,本人谷歌105.0.5195.102。查看版本匹配下载请访问

    https://registry.npmmirror.com/binary.html?path=chromedriver/

    老规矩先水俩图

    iphone14抢购自动化测试脚本
    iphone14-pro/pro-max抢购自动化测试脚本
    邮件有货通知立马访问

    请添加图片描述
    请添加图片描述
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/4428f6cdfa8f40f1a192223e6f8a69db.jpeg


    前情回顾

    iphone13到底香不香,真的这么难抢?

    区别差异

    1.地址选择处苹果官网变更了DOM结构,目前14中python脚本采用新的定位方式

    selectprovice =  driver.find_element_by_xpath("//button[contains(text(),'山东')]")
    driver.execute_script("arguments[0].click();", selectprovice)
    
    • 1
    • 2

    2.流程更改,14新增填写取货人姓/名及身份证后4位流程
    在这里插入图片描述

    3.总体比较差别不大,苹果工程师也是高端偷懒,哈哈


    上代码

    iphone14脚本

    TIPS:本次苹果比较坑,有可能提示可以取货,但是到最后一步提示无法到店取货,请注意

    from selenium import webdriver
    from datetime import datetime
    from selenium.webdriver.support.select import Select
    import pdb
    import time
    
    # iphone14 自动化测试
    print("iphone14 自动化测试开始")
    
    # 访问测试的url定义
    url = "https://www.apple.com.cn/shop/buy-iphone/iphone-14"
    
    # 1. 创建浏览器对象  这里的Chrome中的变量是chromedriver的驱动地址
    driver = webdriver.Chrome()
    
    # 2. 跳转到apple官网
    driver.get(url)
    
    # 3. 隐式等待 设置 防止预售的网络的阻塞
    driver.implicitly_wait(10)
    
    # 4. 开始选择规格【此处我选择了-14 pro】
    element_sku = driver.find_element_by_name('dimensionScreensize')
    driver.implicitly_wait(10)
    element_sku.click()
    
    # 4.2 选择颜色【此处我选择了-银色】
    element_color = driver.find_element_by_xpath(
        '//*[@value="midnight"]')
    driver.execute_script("arguments[0].click();", element_color)
    driver.implicitly_wait(10)
    
    # 4.3 选择内存【此处我选择了-256g】
    element_memory = driver.find_element_by_xpath(
        '//*[@value="256gb"]')
    driver.execute_script("arguments[0].click();", element_memory)
    driver.implicitly_wait(10)
    
    # 4.4 你是否有智能手机要折抵 【此处我选择了-没有旧机折扣】
    element_old = driver.find_element_by_xpath('//*[@id="noTradeIn"]')
    driver.execute_script("arguments[0].click();", element_old)
    driver.implicitly_wait(10)
    
    # 4.5 Applecare 【此处我选择了-无Applecare】
    element_care = driver.find_element_by_id('iphonexs_ac_iup_noapplecare_label')
    driver.execute_script("arguments[0].click();", element_care)
    driver.implicitly_wait(10)
    
    # 4.6 添加到购物袋
    element_car = driver.find_element_by_xpath(
        '//*[@value="add-to-cart"]')
    driver.execute_script("arguments[0].click();", element_car)
    driver.implicitly_wait(10)
    
    # 5 页面跳转查看购物袋
    element_check = driver.find_element_by_xpath(
        '//*[@value="proceed"]')
    driver.execute_script("arguments[0].click();", element_check)
    driver.implicitly_wait(10)
    
    # 6 结账
    element_check_out = driver.find_element_by_xpath(
        '//*[@id="shoppingCart.actions.checkout"]')
    driver.execute_script("arguments[0].click();", element_check_out)
    driver.implicitly_wait(10)
    
    # 7.1 输入用户名
    element_username = driver.find_element_by_id(
        'signIn.customerLogin.appleId')
    element_username.send_keys('862422xxx@qq.com')
    driver.implicitly_wait(10)
    
    # 7.2 输入密码
    element_password = driver.find_element_by_id(
        'signIn.customerLogin.password')
    element_password.send_keys('xxx')
    driver.implicitly_wait(10)
    
    # 7.3 点击登录
    element_login = driver.find_element_by_id(
        'signin-submit-button')
    element_login.click()
    driver.implicitly_wait(10)
    
    # 8.1 你希望如何收到订单商品  【此处我选择了-我要取货】
    element_want_order = driver.find_element_by_id(
        'fulfillmentOptionButtonGroup1')
    driver.execute_script("arguments[0].click();", element_want_order)
    time.sleep(2)
    
    # 8.2 点击显示此地附近的零售店
    selectdistrict = driver.find_element_by_xpath(
        '//*[@data-autom="fulfillment-pickup-store-search-button"]')
    driver.execute_script("arguments[0].click();", selectdistrict)
    time.sleep(2)
    
    # 8.3 点击山东
    selectprovice =  driver.find_element_by_xpath("//button[contains(text(),'山东')]")
    driver.execute_script("arguments[0].click();", selectprovice)
    time.sleep(2)
    
    # 8.4 点击青岛
    selectprovice =  driver.find_element_by_xpath("//button[contains(text(),'青岛')]")
    driver.execute_script("arguments[0].click();", selectprovice)
    time.sleep(2)
    
    # 8.5 点击市南
    selectprovice =  driver.find_element_by_xpath("//button[contains(text(),'市南区')]")
    driver.execute_script("arguments[0].click();", selectprovice)
    time.sleep(2)
    
    # 因为无货需要判断元素是否可以点击
    isOK = driver.find_element_by_xpath(
        '//*[@class="rt-storelocator-store-list"]/fieldset/ul/li[1]/input').is_enabled()
    isOKFlag = bool(1 - isOK)
    #print("准备isOKFlag   " + str(isOKFlag))
    
    # while循环查看是否有货
    while isOKFlag:
        try:
            # 重新调用省市区
            #print("进来了isOKFlag   " + str(isOKFlag))
            selectdistrict = driver.find_element_by_xpath('//*[@data-autom="fulfillment-pickup-store-search-button"]')
            driver.execute_script("arguments[0].click();", selectdistrict)
            time.sleep(1)
    
            selectprovice =  driver.find_element_by_xpath("//button[contains(text(),'山东')]")
            driver.execute_script("arguments[0].click();", selectprovice)
            time.sleep(1)
    
            # 8.4 点击青岛
            selectprovice =  driver.find_element_by_xpath("//button[contains(text(),'青岛')]")
            driver.execute_script("arguments[0].click();", selectprovice)
            time.sleep(1)
    
            # 8.5 点击市南
            selectprovice =  driver.find_element_by_xpath("//button[contains(text(),'市南区')]")
            driver.execute_script("arguments[0].click();", selectprovice)
    
            isOK = driver.find_element_by_xpath('//*[@class="rt-storelocator-store-list"]/fieldset/ul/li[1]/input').is_enabled()
            isOKFlag = bool(1 - isOK)
            #print("最后了isOK   " + str(isOKFlag))
        except:
            print("异常了   ")
            break
    
    # tips: 经验证,苹果官网如果在付款页面之前实体店无货,若有货后在结算页面也无法选择实体店
    # 8.6 选择取货零售店 【此处我选择了-Apple 青岛万象城】
    element_pickupTab = driver.find_element_by_xpath('//*[@class="rt-storelocator-store-list"]/fieldset/ul/li[1]/input')
    driver.execute_script("arguments[0].click();", element_pickupTab)
    driver.implicitly_wait(20)
    
    
    # 8.7 继续填写取货详情
    element_checkout = driver.find_element_by_id(
        'rs-checkout-continue-button-bottom')
    driver.execute_script("arguments[0].click();", element_checkout)
    time.sleep(2)
    
    # 8.8 选择取货时间 【根据时间自己定】
    element_pickup_time = driver.find_element_by_xpath(
        '//*[@value="18"]')
    driver.execute_script("arguments[0].click();", element_pickup_time)
    time.sleep(2)
    
    # 8.9 选择取货时间段 【此处我选择了-默认第一个时间段】
    element_time_quantum = driver.find_element_by_xpath(
        '//*[@id="checkout.fulfillment.pickupTab.pickup.timeSlot.dateTimeSlots.timeSlotValue"]')
    Select(element_time_quantum).select_by_index(1)
    time.sleep(2)
    
    # 8.10 继续填写取货详情
    element_checkout = driver.find_element_by_id(
        'rs-checkout-continue-button-bottom')
    driver.implicitly_wait(15)
    driver.execute_script("arguments[0].click();", element_checkout)
    element_checkout.click()
    driver.implicitly_wait(20)
    
    # 9.1 请填写姓氏
    lastName = driver.find_element_by_id(
        'checkout.pickupContact.selfPickupContact.selfContact.address.lastName')
    lastName.send_keys('胡')
    driver.implicitly_wait(10)
    
    # 9.2 请填写名字
    firstName = driver.find_element_by_id(
        'checkout.pickupContact.selfPickupContact.selfContact.address.firstName')
    firstName.send_keys('东旭')
    driver.implicitly_wait(10)
    
    
    # 9.3 请填写电子邮件
    emailAddress = driver.find_element_by_id(
        'checkout.pickupContact.selfPickupContact.selfContact.address.emailAddress')
    emailAddress.send_keys('862422xxx@qq.com')
    driver.implicitly_wait(10)
    
    # 9.4 请填写手机号
    emailAddress = driver.find_element_by_id(
        'checkout.pickupContact.selfPickupContact.selfContact.address.fullDaytimePhone')
    emailAddress.send_keys('1830639xxxx')
    driver.implicitly_wait(10)
    
    # 9.5 请填写身份证后四位
    nationalIdSelf = driver.find_element_by_id(
        'checkout.pickupContact.selfPickupContact.nationalIdSelf.nationalIdSelf')
    nationalIdSelf.send_keys('403X')
    driver.implicitly_wait(10)
    
    # 9.6 继续选择付款方式
    element_checkoutPay = driver.find_element_by_id(
        'rs-checkout-continue-button-bottom')
    driver.execute_script("arguments[0].click();", element_checkoutPay)
    driver.implicitly_wait(10)
    
    # 10 立即下单 【此处我选择了-微信支付】
    element_billingOptions = driver.find_element_by_id(
        'checkout.billing.billingoptions.wechat_label')
    driver.execute_script("arguments[0].click();", element_billingOptions)
    driver.implicitly_wait(10)
    
    # 11.1 确定
    element_orderPay = driver.find_element_by_id(
        'rs-checkout-continue-button-bottom')
    driver.execute_script("arguments[0].click();", element_orderPay)
    time.sleep(2)
    
    # 12 确认订单
    element_endPay = driver.find_element_by_id(
        'rs-checkout-continue-button-bottom')
    driver.execute_script("arguments[0].click();", element_endPay)
    driver.implicitly_wait(15)
    
    # 11 退出浏览器
    time.sleep(10)
    # driver.quit()
    
    print("iphone14 自动化测试结束")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120
    • 121
    • 122
    • 123
    • 124
    • 125
    • 126
    • 127
    • 128
    • 129
    • 130
    • 131
    • 132
    • 133
    • 134
    • 135
    • 136
    • 137
    • 138
    • 139
    • 140
    • 141
    • 142
    • 143
    • 144
    • 145
    • 146
    • 147
    • 148
    • 149
    • 150
    • 151
    • 152
    • 153
    • 154
    • 155
    • 156
    • 157
    • 158
    • 159
    • 160
    • 161
    • 162
    • 163
    • 164
    • 165
    • 166
    • 167
    • 168
    • 169
    • 170
    • 171
    • 172
    • 173
    • 174
    • 175
    • 176
    • 177
    • 178
    • 179
    • 180
    • 181
    • 182
    • 183
    • 184
    • 185
    • 186
    • 187
    • 188
    • 189
    • 190
    • 191
    • 192
    • 193
    • 194
    • 195
    • 196
    • 197
    • 198
    • 199
    • 200
    • 201
    • 202
    • 203
    • 204
    • 205
    • 206
    • 207
    • 208
    • 209
    • 210
    • 211
    • 212
    • 213
    • 214
    • 215
    • 216
    • 217
    • 218
    • 219
    • 220
    • 221
    • 222
    • 223
    • 224
    • 225
    • 226
    • 227
    • 228
    • 229
    • 230
    • 231
    • 232
    • 233
    • 234
    • 235
    • 236
    • 237
    • 238
    • 239

    iphone14 pro脚本

    TIPS:苹果应该有流量请求限流,会经常提示503,请注意

    from selenium import webdriver
    from datetime import datetime
    from selenium.webdriver.support.select import Select
    import pdb
    import time
    
    # iphone14 自动化测试
    print("iphone14-pro 自动化测试开始")
    
    # 访问测试的url定义
    url = "https://www.apple.com.cn/shop/buy-iphone/iphone-14-pro"
    
    # 1. 创建浏览器对象  这里的Chrome中的变量是chromedriver的驱动地址
    driver = webdriver.Chrome()
    
    # 2. 跳转到apple官网
    driver.get(url)
    
    # 3. 隐式等待 设置 防止预售的网络的阻塞
    driver.implicitly_wait(10)
    
    # 4. 开始选择规格【此处我选择了-14 pro】
    element_sku = driver.find_element_by_name('dimensionScreensize')
    driver.implicitly_wait(10)
    element_sku.click()
    
    # 4.2 选择颜色【此处我选择了-银色】
    element_color = driver.find_element_by_xpath(
        '//*[@value="silver"]')
    driver.execute_script("arguments[0].click();", element_color)
    driver.implicitly_wait(10)
    
    # 4.3 选择内存【此处我选择了-256g】
    element_memory = driver.find_element_by_xpath(
        '//*[@value="256gb"]')
    driver.execute_script("arguments[0].click();", element_memory)
    driver.implicitly_wait(10)
    
    # 4.4 你是否有智能手机要折抵 【此处我选择了-没有旧机折扣】
    element_old = driver.find_element_by_xpath('//*[@id="noTradeIn"]')
    driver.execute_script("arguments[0].click();", element_old)
    driver.implicitly_wait(10)
    
    # 4.5 Applecare 【此处我选择了-无Applecare】
    element_care = driver.find_element_by_id('iphonexs_ac_iup_noapplecare_label')
    driver.execute_script("arguments[0].click();", element_care)
    driver.implicitly_wait(10)
    
    # 4.6 添加到购物袋
    element_car = driver.find_element_by_xpath(
        '//*[@value="add-to-cart"]')
    driver.execute_script("arguments[0].click();", element_car)
    driver.implicitly_wait(10)
    
    # 5 页面跳转查看购物袋
    element_check = driver.find_element_by_xpath(
        '//*[@value="proceed"]')
    driver.execute_script("arguments[0].click();", element_check)
    driver.implicitly_wait(10)
    
    # 6 结账
    element_check_out = driver.find_element_by_xpath(
        '//*[@id="shoppingCart.actions.checkout"]')
    driver.execute_script("arguments[0].click();", element_check_out)
    driver.implicitly_wait(10)
    
    # 7.1 输入用户名
    element_username = driver.find_element_by_id(
        'signIn.customerLogin.appleId')
    element_username.send_keys('862422xxx@qq.com')
    driver.implicitly_wait(10)
    
    # 7.2 输入密码
    element_password = driver.find_element_by_id(
        'signIn.customerLogin.password')
    element_password.send_keys('xxxxx')
    driver.implicitly_wait(10)
    
    # 7.3 点击登录
    element_login = driver.find_element_by_id(
        'signin-submit-button')
    element_login.click()
    driver.implicitly_wait(10)
    
    # 8.1 你希望如何收到订单商品  【此处我选择了-我要取货】
    element_want_order = driver.find_element_by_id(
        'fulfillmentOptionButtonGroup1')
    driver.execute_script("arguments[0].click();", element_want_order)
    time.sleep(2)
    
    # 8.2 点击显示此地附近的零售店
    selectdistrict = driver.find_element_by_xpath(
        '//*[@data-autom="fulfillment-pickup-store-search-button"]')
    driver.execute_script("arguments[0].click();", selectdistrict)
    time.sleep(2)
    
    # 8.3 点击山东
    selectprovice =  driver.find_element_by_xpath("//button[contains(text(),'山东')]")
    driver.execute_script("arguments[0].click();", selectprovice)
    time.sleep(2)
    
    # 8.4 点击青岛
    selectprovice =  driver.find_element_by_xpath("//button[contains(text(),'青岛')]")
    driver.execute_script("arguments[0].click();", selectprovice)
    time.sleep(2)
    
    # 8.5 点击市南
    selectprovice =  driver.find_element_by_xpath("//button[contains(text(),'市南区')]")
    driver.execute_script("arguments[0].click();", selectprovice)
    time.sleep(2)
    
    # 因为无货需要判断元素是否可以点击
    isOK = driver.find_element_by_xpath(
        '//*[@class="rt-storelocator-store-list"]/fieldset/ul/li[1]/input').is_enabled()
    isOKFlag = bool(1 - isOK)
    #print("准备isOKFlag   " + str(isOKFlag))
    
    # while循环查看是否有货
    while isOKFlag:
        try:
            # 重新调用省市区
            #print("进来了isOKFlag   " + str(isOKFlag))
            selectdistrict = driver.find_element_by_xpath('//*[@data-autom="fulfillment-pickup-store-search-button"]')
            driver.execute_script("arguments[0].click();", selectdistrict)
            time.sleep(1)
    
            selectprovice =  driver.find_element_by_xpath("//button[contains(text(),'山东')]")
            driver.execute_script("arguments[0].click();", selectprovice)
            time.sleep(1)
    
            # 8.4 点击青岛
            selectprovice =  driver.find_element_by_xpath("//button[contains(text(),'青岛')]")
            driver.execute_script("arguments[0].click();", selectprovice)
            time.sleep(1)
    
            # 8.5 点击市南
            selectprovice =  driver.find_element_by_xpath("//button[contains(text(),'市南区')]")
            driver.execute_script("arguments[0].click();", selectprovice)
    
            isOK = driver.find_element_by_xpath('//*[@class="rt-storelocator-store-list"]/fieldset/ul/li[1]/input').is_enabled()
            isOKFlag = bool(1 - isOK)
            #print("最后了isOK   " + str(isOKFlag))
        except:
            print("异常了   ")
            break
    
    # 8.6 选择取货零售店 【此处我选择了-Apple 青岛万象城】
    element_pickupTab = driver.find_element_by_xpath('//*[@class="rt-storelocator-store-list"]/fieldset/ul/li[1]/input')
    driver.execute_script("arguments[0].click();", element_pickupTab)
    driver.implicitly_wait(20)
    
    # 8.7 继续填写取货详情
    element_checkout = driver.find_element_by_id(
        'rs-checkout-continue-button-bottom')
    driver.execute_script("arguments[0].click();", element_checkout)
    time.sleep(2)
    
    # 8.8 选择取货时间 【根据时间自己定】
    element_pickup_time = driver.find_element_by_xpath(
        '//*[@value="18"]')
    driver.execute_script("arguments[0].click();", element_pickup_time)
    time.sleep(2)
    
    # 8.9 选择取货时间段 【此处我选择了-默认第一个时间段】
    element_time_quantum = driver.find_element_by_xpath(
        '//*[@id="checkout.fulfillment.pickupTab.pickup.timeSlot.dateTimeSlots.timeSlotValue"]')
    Select(element_time_quantum).select_by_index(1)
    time.sleep(2)
    
    # 8.10 继续填写取货详情
    element_checkout = driver.find_element_by_id(
        'rs-checkout-continue-button-bottom')
    driver.implicitly_wait(15)
    driver.execute_script("arguments[0].click();", element_checkout)
    element_checkout.click()
    driver.implicitly_wait(20)
    
    # 9.1 请填写姓氏
    lastName = driver.find_element_by_id(
        'checkout.pickupContact.selfPickupContact.selfContact.address.lastName')
    lastName.send_keys('胡')
    driver.implicitly_wait(10)
    
    # 9.2 请填写名字
    firstName = driver.find_element_by_id(
        'checkout.pickupContact.selfPickupContact.selfContact.address.firstName')
    firstName.send_keys('xx')
    driver.implicitly_wait(10)
    
    # 9.3 请填写电子邮件
    emailAddress = driver.find_element_by_id(
        'checkout.pickupContact.selfPickupContact.selfContact.address.emailAddress')
    emailAddress.send_keys('862422xxx@qq.com')
    driver.implicitly_wait(10)
    
    # 9.4 请填写手机号
    emailAddress = driver.find_element_by_id(
        'checkout.pickupContact.selfPickupContact.selfContact.address.fullDaytimePhone')
    emailAddress.send_keys('1830639xxxx')
    driver.implicitly_wait(10)
    
    # 9.5 请填写身份证后四位
    nationalIdSelf = driver.find_element_by_id(
        'checkout.pickupContact.selfPickupContact.nationalIdSelf.nationalIdSelf')
    nationalIdSelf.send_keys('403X')
    driver.implicitly_wait(10)
    
    # 9.6 继续选择付款方式
    element_checkoutPay = driver.find_element_by_id(
        'rs-checkout-continue-button-bottom')
    driver.execute_script("arguments[0].click();", element_checkoutPay)
    driver.implicitly_wait(10)
    
    # 10 立即下单 【此处我选择了-微信支付】
    element_billingOptions = driver.find_element_by_id(
        'checkout.billing.billingoptions.wechat_label')
    driver.execute_script("arguments[0].click();", element_billingOptions)
    driver.implicitly_wait(10)
    
    # 11.1 确定
    element_orderPay = driver.find_element_by_id(
        'rs-checkout-continue-button-bottom')
    driver.execute_script("arguments[0].click();", element_orderPay)
    time.sleep(2)
    
    # 12 确认订单
    element_endPay = driver.find_element_by_id(
        'rs-checkout-continue-button-bottom')
    driver.execute_script("arguments[0].click();", element_endPay)
    driver.implicitly_wait(15)
    
    # 11 退出浏览器
    time.sleep(10)
    # driver.quit()
    
    print("iphone14-pro 自动化测试结束")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120
    • 121
    • 122
    • 123
    • 124
    • 125
    • 126
    • 127
    • 128
    • 129
    • 130
    • 131
    • 132
    • 133
    • 134
    • 135
    • 136
    • 137
    • 138
    • 139
    • 140
    • 141
    • 142
    • 143
    • 144
    • 145
    • 146
    • 147
    • 148
    • 149
    • 150
    • 151
    • 152
    • 153
    • 154
    • 155
    • 156
    • 157
    • 158
    • 159
    • 160
    • 161
    • 162
    • 163
    • 164
    • 165
    • 166
    • 167
    • 168
    • 169
    • 170
    • 171
    • 172
    • 173
    • 174
    • 175
    • 176
    • 177
    • 178
    • 179
    • 180
    • 181
    • 182
    • 183
    • 184
    • 185
    • 186
    • 187
    • 188
    • 189
    • 190
    • 191
    • 192
    • 193
    • 194
    • 195
    • 196
    • 197
    • 198
    • 199
    • 200
    • 201
    • 202
    • 203
    • 204
    • 205
    • 206
    • 207
    • 208
    • 209
    • 210
    • 211
    • 212
    • 213
    • 214
    • 215
    • 216
    • 217
    • 218
    • 219
    • 220
    • 221
    • 222
    • 223
    • 224
    • 225
    • 226
    • 227
    • 228
    • 229
    • 230
    • 231
    • 232
    • 233
    • 234
    • 235
    • 236

    iphone14 pro-max脚本

    from selenium import webdriver
    from datetime import datetime
    from selenium.webdriver.support.select import Select
    import pdb
    import time
    
    # iphone14 自动化测试
    print("iphone14-pro-max 自动化测试开始")
    
    # 访问测试的url定义
    url = "https://www.apple.com.cn/shop/buy-iphone/iphone-14-pro"
    
    # 1. 创建浏览器对象  这里的Chrome中的变量是chromedriver的驱动地址
    driver = webdriver.Chrome()
    
    # 2. 跳转到apple官网
    driver.get(url)
    
    # 3. 隐式等待 设置 防止预售的网络的阻塞
    driver.implicitly_wait(10)
    
    # 4. 开始选择规格【此处我选择了-14 pro-max】
    element_sku = driver.find_element_by_xpath(
        '//*[@value="6_7inch"]')
    driver.execute_script("arguments[0].click();", element_sku)
    
    # 4.2 选择颜色【此处我选择了-银色】
    element_color = driver.find_element_by_xpath(
        '//*[@value="silver"]')
    driver.execute_script("arguments[0].click();", element_color)
    driver.implicitly_wait(10)
    
    
    
    # 4.3 选择内存【此处我选择了-256g】
    element_memory = driver.find_element_by_xpath(
        '//*[@value="256gb"]')
    driver.execute_script("arguments[0].click();", element_memory)
    driver.implicitly_wait(10)
    
    # 4.4 你是否有智能手机要折抵 【此处我选择了-没有旧机折扣】
    element_old = driver.find_element_by_xpath('//*[@id="noTradeIn_label"]')
    driver.execute_script("arguments[0].click();", element_old)
    driver.implicitly_wait(10)
    
    # 4.5 Applecare 【此处我选择了-无Applecare】
    element_care = driver.find_element_by_id('iphone11promax_ac_iup_noapplecare_label')
    driver.execute_script("arguments[0].click();", element_care)
    driver.implicitly_wait(10)
    
    # 4.6 添加到购物袋
    element_car = driver.find_element_by_xpath(
        '//*[@value="add-to-cart"]')
    driver.execute_script("arguments[0].click();", element_car)
    driver.implicitly_wait(10)
    
    # 5 页面跳转查看购物袋
    element_check = driver.find_element_by_xpath(
        '//*[@value="proceed"]')
    driver.execute_script("arguments[0].click();", element_check)
    driver.implicitly_wait(10)
    
    # 6 结账
    element_check_out = driver.find_element_by_xpath(
        '//*[@id="shoppingCart.actions.checkout"]')
    driver.execute_script("arguments[0].click();", element_check_out)
    driver.implicitly_wait(10)
    
    # 7.1 输入用户名
    element_username = driver.find_element_by_id(
        'signIn.customerLogin.appleId')
    element_username.send_keys('xxx@qq.com')
    driver.implicitly_wait(10)
    
    # 7.2 输入密码
    element_password = driver.find_element_by_id(
        'signIn.customerLogin.password')
    element_password.send_keys('xxx')
    driver.implicitly_wait(10)
    
    # 7.3 点击登录
    element_login = driver.find_element_by_id(
        'signin-submit-button')
    element_login.click()
    driver.implicitly_wait(10)
    
    # 8.1 你希望如何收到订单商品  【此处我选择了-我要取货】
    element_want_order = driver.find_element_by_id(
        'fulfillmentOptionButtonGroup1')
    driver.execute_script("arguments[0].click();", element_want_order)
    time.sleep(2)
    
    # 8.2 点击显示此地附近的零售店
    selectdistrict = driver.find_element_by_xpath(
        '//*[@data-autom="fulfillment-pickup-store-search-button"]')
    driver.execute_script("arguments[0].click();", selectdistrict)
    time.sleep(2)
    
    # 8.3 点击山东
    selectprovice =  driver.find_element_by_xpath("//button[contains(text(),'山东')]")
    driver.execute_script("arguments[0].click();", selectprovice)
    time.sleep(2)
    
    # 8.4 点击青岛
    selectprovice =  driver.find_element_by_xpath("//button[contains(text(),'青岛')]")
    driver.execute_script("arguments[0].click();", selectprovice)
    time.sleep(2)
    
    # 8.5 点击市南
    selectprovice =  driver.find_element_by_xpath("//button[contains(text(),'市南区')]")
    driver.execute_script("arguments[0].click();", selectprovice)
    time.sleep(2)
    
    # 因为无货需要判断元素是否可以点击
    isOK = driver.find_element_by_xpath(
        '//*[@class="rt-storelocator-store-list"]/fieldset/ul/li[1]/input').is_enabled()
    isOKFlag = bool(1 - isOK)
    #print("准备isOKFlag   " + str(isOKFlag))
    
    # while循环查看是否有货
    while isOKFlag:
        try:
            # 重新调用省市区
            #print("进来了isOKFlag   " + str(isOKFlag))
            selectdistrict = driver.find_element_by_xpath('//*[@data-autom="fulfillment-pickup-store-search-button"]')
            driver.execute_script("arguments[0].click();", selectdistrict)
            time.sleep(1)
    
            selectprovice =  driver.find_element_by_xpath("//button[contains(text(),'山东')]")
            driver.execute_script("arguments[0].click();", selectprovice)
            time.sleep(1)
    
            # 8.4 点击青岛
            selectprovice =  driver.find_element_by_xpath("//button[contains(text(),'青岛')]")
            driver.execute_script("arguments[0].click();", selectprovice)
            time.sleep(1)
    
            # 8.5 点击市南
            selectprovice =  driver.find_element_by_xpath("//button[contains(text(),'市南区')]")
            driver.execute_script("arguments[0].click();", selectprovice)
    
            isOK = driver.find_element_by_xpath('//*[@class="rt-storelocator-store-list"]/fieldset/ul/li[1]/input').is_enabled()
            isOKFlag = bool(1 - isOK)
            #print("最后了isOK   " + str(isOKFlag))
        except:
            print("异常了   ")
            break
    
    # 8.6 选择取货零售店 【此处我选择了-Apple 青岛万象城】
    element_pickupTab = driver.find_element_by_xpath('//*[@class="rt-storelocator-store-list"]/fieldset/ul/li[1]/input')
    driver.execute_script("arguments[0].click();", element_pickupTab)
    driver.implicitly_wait(20)
    
    # 8.7 继续填写取货详情
    element_checkout = driver.find_element_by_id(
        'rs-checkout-continue-button-bottom')
    driver.execute_script("arguments[0].click();", element_checkout)
    time.sleep(2)
    
    # 8.8 选择取货时间 【根据时间自己定】
    element_pickup_time = driver.find_element_by_xpath(
        '//*[@value="18"]')
    driver.execute_script("arguments[0].click();", element_pickup_time)
    time.sleep(2)
    
    # 8.9 选择取货时间段 【此处我选择了-默认第一个时间段】
    element_time_quantum = driver.find_element_by_xpath(
        '//*[@id="checkout.fulfillment.pickupTab.pickup.timeSlot.dateTimeSlots.timeSlotValue"]')
    Select(element_time_quantum).select_by_index(1)
    time.sleep(2)
    
    # 8.10 继续填写取货详情
    element_checkout = driver.find_element_by_id(
        'rs-checkout-continue-button-bottom')
    driver.implicitly_wait(15)
    driver.execute_script("arguments[0].click();", element_checkout)
    element_checkout.click()
    driver.implicitly_wait(20)
    
    # 9.1 请填写姓氏
    lastName = driver.find_element_by_id(
        'checkout.pickupContact.selfPickupContact.selfContact.address.lastName')
    lastName.send_keys('胡')
    driver.implicitly_wait(10)
    
    # 9.2 请填写名字
    firstName = driver.find_element_by_id(
        'checkout.pickupContact.selfPickupContact.selfContact.address.firstName')
    firstName.send_keys('东旭')
    driver.implicitly_wait(10)
    
    # 9.3 请填写电子邮件
    emailAddress = driver.find_element_by_id(
        'checkout.pickupContact.selfPickupContact.selfContact.address.emailAddress')
    emailAddress.send_keys('862422627@qq.com')
    driver.implicitly_wait(10)
    
    # 9.4 请填写手机号
    emailAddress = driver.find_element_by_id(
        'checkout.pickupContact.selfPickupContact.selfContact.address.fullDaytimePhone')
    emailAddress.send_keys('18306390693')
    driver.implicitly_wait(10)
    
    # 9.5 请填写身份证后四位
    nationalIdSelf = driver.find_element_by_id(
        'checkout.pickupContact.selfPickupContact.nationalIdSelf.nationalIdSelf')
    nationalIdSelf.send_keys('403X')
    driver.implicitly_wait(10)
    
    # 9.6 继续选择付款方式
    element_checkoutPay = driver.find_element_by_id(
        'rs-checkout-continue-button-bottom')
    driver.execute_script("arguments[0].click();", element_checkoutPay)
    driver.implicitly_wait(10)
    
    # 10 立即下单 【此处我选择了-微信支付】
    element_billingOptions = driver.find_element_by_id(
        'checkout.billing.billingoptions.wechat_label')
    driver.execute_script("arguments[0].click();", element_billingOptions)
    driver.implicitly_wait(10)
    
    # 11.1 确定
    element_orderPay = driver.find_element_by_id(
        'rs-checkout-continue-button-bottom')
    driver.execute_script("arguments[0].click();", element_orderPay)
    time.sleep(2)
    
    # 12 确认订单
    element_endPay = driver.find_element_by_id(
        'rs-checkout-continue-button-bottom')
    driver.execute_script("arguments[0].click();", element_endPay)
    driver.implicitly_wait(15)
    
    # 11 退出浏览器
    time.sleep(10)
    # driver.quit()
    
    print("iphone14-pro 自动化测试结束")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120
    • 121
    • 122
    • 123
    • 124
    • 125
    • 126
    • 127
    • 128
    • 129
    • 130
    • 131
    • 132
    • 133
    • 134
    • 135
    • 136
    • 137
    • 138
    • 139
    • 140
    • 141
    • 142
    • 143
    • 144
    • 145
    • 146
    • 147
    • 148
    • 149
    • 150
    • 151
    • 152
    • 153
    • 154
    • 155
    • 156
    • 157
    • 158
    • 159
    • 160
    • 161
    • 162
    • 163
    • 164
    • 165
    • 166
    • 167
    • 168
    • 169
    • 170
    • 171
    • 172
    • 173
    • 174
    • 175
    • 176
    • 177
    • 178
    • 179
    • 180
    • 181
    • 182
    • 183
    • 184
    • 185
    • 186
    • 187
    • 188
    • 189
    • 190
    • 191
    • 192
    • 193
    • 194
    • 195
    • 196
    • 197
    • 198
    • 199
    • 200
    • 201
    • 202
    • 203
    • 204
    • 205
    • 206
    • 207
    • 208
    • 209
    • 210
    • 211
    • 212
    • 213
    • 214
    • 215
    • 216
    • 217
    • 218
    • 219
    • 220
    • 221
    • 222
    • 223
    • 224
    • 225
    • 226
    • 227
    • 228
    • 229
    • 230
    • 231
    • 232
    • 233
    • 234
    • 235
    • 236
    • 237
    • 238
    订阅有货通知

    为了更便于大家进行抢购,特提供邮箱订阅有货功能
    在这里插入图片描述

    作用

    1.本狗已将14 pro/max所有型号扒下,大家可以选择心怡的产品进行订阅。
    2.服务器会24小时不间断调用苹果接口,实时监控有货,一旦有货立马通知订阅邮箱

    地址

    http://apple.javadog.net/apple/v1/

    操作

    1.测试邮箱是否可以接受邮件,输入自己邮箱,点击发送,记得不要忽略加入黑名单
    在这里插入图片描述

    2.选择自己心仪型号及取货位置,并录入自己接受邮件的邮箱即可,如有货即可推送邮件
    在这里插入图片描述

    3.接到邮件手速快的同学,机会很大呦
    在这里插入图片描述

    总结

    希望大家理性使用及购买,本人也当娱乐学习,拖更也真诚的跟大家道个歉,希望大家可去踩踩我的狗窝😄

  • 相关阅读:
    mysql 、pg 查询日期处理
    利用ffmpeg实现rtmp和rtsp推流
    Java基础~线程和进程(3) 多线程编程细节
    基于Python实现的KNN分类实验
    【网络安全 --- xss-labs靶场】xss-labs靶场安装详细教程,让你巩固对xss漏洞的理解及绕过技巧和方法(提供资源)
    在组件的描述文档中没有找见属性能修改样式的时候如何修改组件样式——样式穿透
    看到这个应用上下线方式,不禁感叹:优雅,太优雅了!
    【好数推荐】方言语音数据集
    Linux云服务器安装mail邮件服务
    [2023-09-12]Oracle备库查询报ORA-01187
  • 原文地址:https://blog.csdn.net/baidu_25986059/article/details/126822157