Ejemplo n.º 1
0
def buy(driver: webdriver):
    url = 'https://market.m.taobao.com/app/sj/shop-membership-center/pages/index?spm=a1z10.4-b-s.w5003-22059585455.1.7f86274aL8QKmA' \
          '&wh_weex=true&wx_navbar_transparent=true&sellerId=2360209412&scene=taobao_shop'

    btn_buy = "//span[contains(text(),'1积分享兰蔻菁纯宝石唇膏 02')]/../following-sibling::div[1]//div[@class='gift-act-btn']"
    btn_word = "//span[contains(text(),'1积分享兰蔻菁纯宝石唇膏 02')]/../following-sibling::div[1]//span[@class='gift-act-btn-text']"
    btn = "//div[@class='btnWarp']"
    word = "//span[@class='btn']"
    count = 0
    login_time = "2020-06-10 13:23:00"
    buy_time = "2020-06-10 13:23:55"
    isFirst = True
    wait = WebDriverWait(driver, 10, 0.5)
    while True:
        if datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f') < buy_time:
            # 提前登录
            if isFirst and datetime.datetime.now().strftime(
                    '%Y-%m-%d %H:%M:%S.%f') >= login_time:
                driver.maximize_window()
                driver.get(url)
                driver.implicitly_wait(2)
                login(driver)
                isFirst = False
            continue
        else:
            # 如果连续抢60次都抢不到 那么就放弃吧
            count += 1
            if count > 60:
                break
            print("即将开始抢购...")
            print(datetime.datetime.now())
            # 重新进页面
            driver.refresh()

            # 开始页面的唇膏抢购按钮
            buy_btn = wait.until(
                lambda driver: driver.find_element_by_xpath(btn_buy))
            # 开始页面的唇膏抢购按钮上的文字
            word_btn = wait.until(
                lambda driver: driver.find_element_by_xpath(btn_word))
            if word_btn.text == '立即兑换':
                # 如果抢购按钮上的文字为立即兑换 则点击按钮跳转详情页
                buy_btn.click()
                # 详情页中的购买按钮
                targetBtn = wait.until(
                    lambda driver: driver.find_element_by_xpath(btn))
                # 详情页中的购买按钮上的文字
                targetBtnWord = wait.until(
                    lambda driver: driver.find_element_by_xpath(word))
                if targetBtnWord.text != "已抢光":
                    # 如果详情页中购买按钮上的文字不为已枪光 则点击购买
                    targetBtn.click()
                    time.sleep(5)
                    # 抢到了就退出...
                    break
    print("抢购结束...")
Ejemplo n.º 2
0
def start_session(driver: webdriver) -> None:
    driver.implicitly_wait(30)
    driver.maximize_window()