当前位置:   article > 正文

大麦网抢票小工具_java实现大麦抢票

java实现大麦抢票

1、准备

(1)Android Studio:版本是Android Studio Flamingo | 2022.2.1 Patch 2

(2)数据线

(3)手机

2、开始

(1)打开Android Studio;

(2)点击菜单栏File->New->New Project...,弹出如下对话框,按图中选择并点击Next;

 (3)弹出如下对话框,点击Finish;

(4)在E:\Users\AndroidStudioProjects\Tickets\app\src\androidTest\java文件夹下创建TicketsTest.java类文件,TicketsTest为自定义名称;

(5)TicketsTest.java文件内容为:

  1. import android.os.Bundle;
  2. import android.util.Log;
  3. import android.view.View;
  4. import android.widget.Button;
  5. import androidx.test.uiautomator.UiDevice;
  6. import androidx.test.uiautomator.UiObject;
  7. import androidx.test.uiautomator.UiObjectNotFoundException;
  8. import androidx.test.uiautomator.UiSelector;
  9. import androidx.test.platform.app.InstrumentationRegistry;
  10. import androidx.test.uiautomator.By;
  11. import android.os.Handler;
  12. import android.os.Looper;
  13. import java.util.concurrent.CountDownLatch;
  14. import com.example.tickets.R;
  15. import org.junit.Test;
  16. public class TicketsTest {
  17. private Button ticketButton;
  18. private static final int DELAY_MS = 10; // 100毫秒
  19. private static final int NUM_CLICKS = 200; // 点击次数
  20. private Handler handler = new Handler(Looper.getMainLooper());
  21. private int clickCount = 0;
  22. private Runnable clickRunnable = new Runnable() {
  23. @Override
  24. public void run() {
  25. // 执行点击操作
  26. try {
  27. clickButton();
  28. } catch (UiObjectNotFoundException e) {
  29. throw new RuntimeException(e);
  30. }
  31. clickCount++;
  32. if (clickCount < NUM_CLICKS) {
  33. // 继续下一个定时任务
  34. handler.postDelayed(this, DELAY_MS);
  35. }
  36. }
  37. };
  38. @Test
  39. public void startAutoClick() {
  40. // 创建一个 CountDownLatch,设置为 1
  41. CountDownLatch latch = new CountDownLatch(1);
  42. handler.postDelayed(clickRunnable, DELAY_MS);
  43. // 等待定时任务执行
  44. try {
  45. latch.await();
  46. } catch (InterruptedException e) {
  47. throw new RuntimeException(e);
  48. }
  49. latch.countDown(); // 定时任务执行完毕,释放锁
  50. }
  51. @Test
  52. public void stopAutoClick() {
  53. Log.i("结束", "stopAutoClick");
  54. handler.removeCallbacks(clickRunnable);
  55. }
  56. @Test
  57. public void clickButton() throws UiObjectNotFoundException {
  58. Log.i("次数", "clickButton: "+clickCount);
  59. // 在这里添加自动点击按钮的逻辑
  60. // 创建一个UiSelector来定位按钮元素
  61. UiSelector buttonSelector = new UiSelector().text("立即购买");
  62. // 在当前屏幕中查找按钮元素
  63. UiDevice uiDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation());
  64. UiObject button = uiDevice.findObject(buttonSelector);
  65. // 如果找到按钮元素,则模拟点击操作
  66. if (button.exists() && button.isEnabled()) {
  67. button.click();
  68. // 进入购票页面,这部分内容可根据自己抢票的页面修改
  69. // 创建一个UiSelector来定位票档元素
  70. UiSelector levelSelector = new UiSelector().text("看台1280元");
  71. // 在当前屏幕中查找按钮元素
  72. UiObject levelButton = uiDevice.findObject(levelSelector);
  73. levelButton.click();
  74. // 创建一个UiSelector来提交订单
  75. UiSelector submitSelector = new UiSelector().text("确定");
  76. // 在当前屏幕中查找按钮元素
  77. UiObject submitButton = uiDevice.findObject(submitSelector);
  78. submitButton.click();
  79. } else {
  80. // 处理找不到按钮的情况
  81. if(clickCount>100){
  82. stopAutoClick();
  83. }
  84. }
  85. }
  86. }

(6)数据线连接手机和电脑,手机打开大麦网到抢票页面,点击运行测试程序

 (7)Good Luck!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/472431
推荐阅读
相关标签
  

闽ICP备14008679号