import time import traceback from helium import * from selenium.webdriver import ChromeOptions chrome_options = ChromeOptions() mobile_emulation = {'deviceName': 'iPad Mini'} chrome_options.add_experimental_option("mobileEmulation", mobile_emulation) #chrome_options.add_experimental_option('excludeSwitches', ['enable-automation']) #chrome_options.add_experimental_option('useAutomationExtension', False) chrome_options.add_argument('--no-sandbox') chrome_options.add_argument('--headless') chrome_options.add_argument('user-agent="Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1"') driver = start_chrome("https://youdian.jindianle.com/", options=chrome_options) try: click(Text("您尚未登录,点击登录")) click(Text("密码登录")) write("15359827092", into="请输入手机号") write("c113w927j", into="请输入6-12位数字或字母") click(Button("登 录")) # 进入页面先点击关闭弹窗按钮 _close = S('//*[@id="vue2_el"]/div/div[10]/div/p') click(_close) #店内账本 # click(Text("店内账本")) # moneynum = S('//span[contains(@class, "gray3") and contains(@class, "moneynum")]') # wait_until(moneynum.exists) # if moneynum is not None: # balance = moneynum.web_element.text # print(f"金额还剩:{balance}") # else: # print("元素未找到") # # 回退 # back = S('#vue2_el > header > div.back > a') # click(back) #选号记录 # click(Text("选号记录")) # # 回退 # back = S('#vue2_el > header > div.back > a') # click(back) # 点击排列三 pls = S('//*[@id="vue2_el"]/div/section/div[6]/div[4]/div[3]') wait_until(pls.exists) click(pls) wait_until(Text('组选').exists) click(Text('组选')) result = ['258', '357', '069', '168', '078', '267', '159', '339', '177', '366'] for index, item in enumerate(result): if len(set(item)) == 3: # 普通投注-> 取消组3 click(Text('普通投注')) for i in item: ball_line = S(f'//*[@id="body"]/section/div[3]/div[2]/ul/li[{int(i) + 1}]/p[1]') if ball_line.exists: click(ball_line) print(ball_line.web_element.text) else: print(f"{i}不存在") wait_until(Text("组3").exists) click(Text("组3")) else: click(Text('组3单式')) if item[0] == item[1]: double_ball = S(f'//*[@id="body"]/section/div[3]/div[1]/div[2]/ul/li[{int(item[0]) + 1}]/p') single_ball = S(f'//*[@id="body"]/section/div[3]/div[2]/div[2]/ul/li[{int(item[2]) + 1}]/p') else: double_ball = S(f'//*[@id="body"]/section/div[3]/div[1]/div[2]/ul/li[{int(item[2]) + 1}]/p') single_ball = S(f'//*[@id="body"]/section/div[3]/div[2]/div[2]/ul/li[{int(item[0]) + 1}]/p') click(double_ball) click(single_ball) print(f"对子号:{double_ball.web_element.text}") print(f"非对子号:{single_ball.web_element.text}") print(f"{index}: {item}") wait_until(Text("下一步").exists) click(Text("下一步")) if index + 1 != len(result): wait_until(Text("+继续添加").exists) click(Text("+继续添加")) save = Text("保存") wait_until(save.exists) click(Text("保存")) print(save.web_element.text) # # 设置倍数后,再点击一次下一步 # plus = Text("+") # # click(plus) # wait_until(Text("下一步").exists) # click(Text("下一步")) # # 最后一步, 点击确认 # wait_until(Text("确认").exists) # click(Text("确认")) print("完成。。。") kill_browser() except Exception as e: print(traceback.format_exc()) kill_browser()