大麦抢票-Appium实现抢票软件

这篇具有很好参考价值的文章主要介绍了大麦抢票-Appium实现抢票软件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

环境介绍:Python 3.9.1

自行下载appium和相关依赖

本代码是无聊写的,运行也正常,但是就是抢不到,抢票需要天时,地利,人和,不要用UI最好

我链接的是夜神虚拟模拟器

特此说明:所有的UI自动化抢票以个人见解,95%往上抢不到票文章来源地址https://www.toymoban.com/news/detail-519122.html

import os
from appium import webdriver
import time

from selenium.webdriver.common.by import By


def get_size(driver):
    x = driver.get_window_size()['width']
    y = driver.get_window_size()['height']
    return x, y

def swipe_down(driver, t):
    """
    滑动时X轴不变,Y轴由小到大
    """
    screensize = get_size(driver)
    x1 = int(screensize[0] * 0.5)  # x坐标
    y1 = int(screensize[1] * 0.25)  # 起始y坐标
    y2 = int(screensize[1] * 0.75)  # 终点y坐标
    driver.swipe(x1, y1, x1, y2, t)



heard = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"}

desired_caps = {
    "platformName": "Android",
    "platformVersion": "7.1.3",
    "appPackage": "cn.damai",
    "appActivity": "cn.damai.search.v2.SearchActivity",
    "noReset": True,
    "adbExecTimeout": 200000,
    "headers": heard
}
# name = "作者"
# concert_name = "【北京】DEADLINE 小鬼-作者2023巡回演唱会-北京站"
# session = '2023-06-03 周六 19:00'
# money = '看台1580元'

name = "作者"
concert_name = "武汉站"
session = '2023-06-25 周日 19:00'
money = '看台855'

try:

    driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_caps)  ##启动服务器地址,后面跟的是手机信息
    driver.implicitly_wait(8)
    print("开始输入……")

    driver.find_element(By.ID, "cn.damai:id/header_search_v2_input").send_keys(name)
    driver.find_element(By.XPATH, '//android.widget.TextView[@text="{}"]'.format(name)).click()

    time.sleep(0.5)
    #获取演唱会场次
    # try:
    #     print('点击场次')  # 但是时间点长
    #     driver.find_element(By.XPATH, "//*[@text='{}']".format(concert_name)).click()
    # except:
    #     print('点击场次')#需要手动配置
    #     driver.tap([(186, 280), (864, 364)], 300)
        # driver.tap([(186, 280), (864, 364)], 300)
    time.sleep(1)
    #获取当前是否能够购买,如果能够购买直接进入
    sell_status = driver.find_element(By.ID, "cn.damai:id/tv_left_main_text").text
    while True:

        print('现在售票状态处于:{}中....'.format(sell_status))

        if sell_status.strip() == '立即预定' or sell_status.strip() == '立即购买':
            driver.find_element(By.ID, "cn.damai:id/tv_left_main_text").click()
            break

        else:
            # 点击立即购买
            swipe_down(driver, 200)
            # time.sleep(0.1)
        sell_status = driver.find_element(By.ID, "cn.damai:id/tv_left_main_text").text

    time.sleep(0.5)
    #选择场次
    try:

        while True:

            driver.find_element(By.XPATH, "//android.widget.TextView[@text='{}']".format(session)).click()
            time.sleep(0.1)
            driver.find_element(By.XPATH, "//android.widget.TextView[@text='{}']".format(money)).click()
            #点击立即确定
            driver.tap([(354, 1496), (546, 1584)], 300)
            time.sleep(0.1)
            try:
                driver.find_element(By.ID,"cn.damai:id/damai_theme_dialog_confirm_btn")
                driver.find_element(By.ID, "cn.damai:id/damai_theme_dialog_confirm_btn").click()
                time.sleep(0.5)
            except:
                break

        #处理票价
        # num = 1
        # while num > 1:
        #     driver.find_element(By.ID, "cn.damai:id/img_jia").click()
        #     num -= 1
        # driver.tap([(450, 1496), (858, 1584)], 300)
        # driver.find_element(By.XPATH, '//android.widget.TextView[@text="马茂财"]').click()
        # try:
        #     driver.find_element(By.XPATH,'//android.widget.TextView[@text="支付宝"]').click()
        # except:
        #     pass
        #点击确定
        driver.tap([(658, 1500), (858, 1580)], 300)

    except:

        driver.find_element(By.ID, "cn.damai:id/damai_theme_dialog_cancel_btn']").click()
        driver.tap([(354, 1496), (546, 1584)], 300)
        time.sleep(0.5)
        # try:
        #     driver.find_element(By.XPATH, '//android.widget.TextView[@text="预留身份证信息"]')
        # except:


        #处理票价
        # num = 1
        # while num > 1:
        #     driver.find_element(By.ID, "cn.damai:id/img_jia").click()
        #     num -= 1
        driver.tap([(450, 1496), (858, 1584)], 300)
        # driver.find_element(By.XPATH, '//android.widget.TextView[@text="预留身份证信息"]').click()
        # try:
        #     driver.find_element(By.XPATH,'//android.widget.TextView[@text="支付宝"]').click()
        # except:
        #     pass
        #点击确定
        driver.tap([(658, 1500), (858, 1580)], 300)

except Exception as e:

    raise Exception(e)

finally:
    os.system("adb uninstall io.appium.settings")
    # os.system("adb uninstall io.appium.unlock")
    # driver.quit()

到了这里,关于大麦抢票-Appium实现抢票软件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python制作【大麦网】自动抢票程序

    大麦网,是中国综合类现场娱乐票务营销平台,业务覆盖演唱会、 话剧、音乐剧、体育赛事等领域。 但是因为票数有限,还有黄牛们不能丢了饭碗,所以导致了,很多人都抢不到票 那么,今天带大家用Python来制作一个自动抢票的脚本小程序 面向对象编程 selenium 操作浏览器

    2024年02月04日
    浏览(46)
  • 基于selenium的大麦网自动抢票脚本

    先配置webdriver   记录cookie,设置免密登录  购票页面下单   选择座位+选择场次,票档(因为检索是否需要选择座位要浪费点时间,所以直接写了两个方法,看着选)   不用选择座位,直接选择给场次票档和数量 提交订单   购票页面点击加票按钮  判断XPATH是否存在   页

    2024年02月14日
    浏览(46)
  • 基于Python和Selenium的大麦网自动抢票脚本

    自动化抢票的脚本,需通过Selenium库来实现自动化操作。(学习参考) 优化后的完整代码: 需要注意的: 我用了 with 语句保证浏览器实例在函数结束后正确关闭。 我用了几个 try-except 块处理在各个步骤可能出现的异常,它可以在异常的时候打印出错误的信息。 我把大部分代

    2024年02月11日
    浏览(43)
  • appium实现自动化测试原理

    目录 1、Appium原理 1.1、Android Appium原理图文解析 1.1.2、原理详解 1.1.2.1、脚本端 1.1.2.2、appium-server 1.1.2.3、中间件bootstrap.jar 1.1.2.4、驱动引擎uiautomator 1.2、 IOS Appium原理 执行测试脚本全过程: 1、测试脚本通过Json Wire Protocol协议以json格式将数据通过HTTP协议与appium-server之间进行

    2024年02月20日
    浏览(44)
  • Python制作【大麦网】抢票程序,看演唱会再也不怕没票了

    大麦网,是中国综合类现场娱乐票务营销平台,业务覆盖演唱会、 话剧、音乐剧、体育赛事等领域。 但是因为票数有限,还有黄牛们不能丢了饭碗,所以导致了,很多人都抢不到票 那么,今天带大家用Python来制作一个自动抢票的脚本小程序 面向对象编程 selenium 操作浏览器

    2024年02月05日
    浏览(58)
  • 使用【Python+Appium】实现自动化测试

    一、环境准备 1.脚本语言:Python3.x    IDE:安装Pycharm 2.安装Java JDK 、Android SDK 3.adb环境,path添加E:SoftwareAndroid_SDKplatform-tools 4.安装Appium for windows,官网地址 Redirecting  点击下载按钮会到GitHub的下载页面,选择对应平台下载   安装完成后,启动Appium,host和port默认的即可,然

    2024年02月08日
    浏览(48)
  • Python +Appium 实现app自动化测试

    一、Appium简介 Appium是一款开源工具,用于自动化iOS、Android和Windows桌面平台上的本地、移动web和混合应用程序。原生应用是指那些使用iOS、Android或Windows sdk编写的应用。移动网页应用是通过移动浏览器访问的网页应用(appum支持iOS和Chrome上的Safari或Android上的内置“浏览器”应用

    2023年04月09日
    浏览(42)
  • Python+Appium实现自动化测试的使用步骤

    这篇文章主要介绍了Python+Appium实现自动化测试的使用步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 1.脚本语言:Python3.x IDE:安装Pycharm 2.安装Java JDK 、Android SDK 3.adb环境,path添加E:

    2024年02月03日
    浏览(39)
  • 通过Appium Desktop实现录制功能并导出自动化脚本

    1、我们进入下面这个界面  图中红色标记1为 “ top by coordinates ” 按钮, 这是一种通过坐标定位元素的方式。  图中红色标记2为 “ Start Recording ” 按钮, 选中表示处理录制状态。   2、点击“top by coordinates” 按钮,再点击 “Start Recording” 按钮,我们就可以在左则的 App 界

    2024年02月08日
    浏览(46)
  • Python与Appium实现手机APP自动化测试的示例代码

    本文主要介绍了Python与Appium实现手机APP自动化测试的示例代码,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 appium是一个开源的测试自动化框架,可以与原生的、混合的和移动的web应用程序一直使用。它使用WebDriver协议驱动IOS(内

    2024年01月24日
    浏览(66)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包