Java写的自动抢购红米note手机(2016/4/6 米粉节)
2016-06-22 10:10
459 查看
1:使用Maven模板构建一个项目切换到工作目C:\workshop下,输入 mvn archetype:generate -DgroupId=com.yiibai -DartifactId=NumberGenerator -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false 2:修改pom.xml 修改后的内容如下: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.yiibai</groupId> <artifactId>NumberGenerator</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <name>NumberGenerator</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>2.53.0</version> </dependency> <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-htmlunit-driver</artifactId> <version>2.20</version> </dependency> </dependencies> </project> 3:cd进入project目录中:C:\\Workshop\\ NumberGenerator中输入mvn cleaninstall,然后输入mvneclipse:eclipse 这样在eclipse中# File -> Import... # General -> ExistingProjects into Workspace # Click next # 将现有工程导入eclipse中 4: 代码 以下是抢购红米note3的主页: 以下是程序的代码: MyThread.java package com.yiibai; import java.util.List; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; public class myThread extends Thread{ private String name; public myThread(String name){ this.name = name; } public void run(){ // 小米官网抢购红米note3页面 String baseurl = "http://item.mi.com/buyphone/note3"; // 小米官网登录信息 String baseurl2 = "https://account.xiaomi.com/pass/serviceLogin?callback=http%3A%2F%2Forder.mi.com%2Flogin%2Fcallback%3Ffollowup%3Dhttp%253A%252F%252Fitem.mi.com%252Fbuyphone%252Fnote3%26sign%3DZmYyZmU3NmE0NWNmMjZkYzk5YmU5ZWJjMzc2Zjg1YzNhMjY3NTJjMg%2C%2C&sid=mi_eshop"; WebElement loginElement = null; List<WebElement> element = null; List<WebElement> taocan = null; WebElement btn = null; WebDriver driver = new FirefoxDriver(); System.out.println("starting:"); driver.get(baseurl2); driver.findElement(By.id("username")).sendKeys("13721035842"); // 输入自己小米官网登录账号 driver.findElement(By.id("pwd")).sendKeys("19910715aabb"); // 输入小米官网登录密码 driver.findElement(By.id("login-button")).click(); System.out.println(driver.getCurrentUrl()); try { sleep(5000); } catch (InterruptedException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } driver.navigate().to(baseurl); System.out.println("hello world!!"); element = driver.findElements(By.className("J_stepItem")); if(element == null || element.size() == 0){ driver.close(); } element.get(1).click(); // 选择高配版 3GB内存 + 32GB容量 element = driver.findElements(By.className("J_stepItem")); element.get(2).click(); // 选择双网通 element = driver.findElements(By.className("J_stepItem")); element.get(5).click(); // 选择银白色 taocan = driver.findElements(By.className("J_packageItem")); // 看是否到时间出现套餐选择 while(taocan == null || taocan.size() == 0){ taocan = driver.findElements(By.className("J_packageItem")); // 一直循环等待套餐的出现 System.out.println("listening11...." + name); try { sleep(500); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } taocan.get(0).click(); // 等到选择第一个套餐 element = driver.findElements(By.className("btn")); element.get(0).click(); // 点击下一步抢购按钮 等待 //driver.quit(); System.out.println(element.size()); } } 主函数test.java package com.yiibai; import java.util.List; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; /** * Hello world! * */ public class test { public static void main( String[] args ) throws InterruptedException { myThread th1 = new myThread("A"); // 开启5个线程 等同于开启5个浏览器 实时监听 myThread th2 = new myThread("B"); myThread th3 = new myThread("C"); myThread th4 = new myThread("D"); myThread th5 = new myThread("E"); th1.start(); th2.start(); th3.start(); th4.start(); th5.start(); } } 在抢购前5分钟将test.java开启,一直等待吧,祝你好运。 参考文献: 1:maven创建java项目 http://www.yiibai.com/maven/create-a-java-project-with-maven.html 2:seleniumwebdriver http://docs.seleniumhq.org/docs/03_webdriver.jsp#setting-up-a-selenium-webdriver-project |
相关文章推荐
- JAVA父类引用指向子类的对象是什么意思?有什么作用?
- 最近用struts2写网页的一个总结
- JAVA 开发环境搭建
- Java的抽象类与接口
- JAVA常用代码(一)
- 内部类
- SSM之SpringMVC的文件上传
- java学习:《Java Web开发实战经典》总结
- java 基础
- JVM调优总结 -Xms -Xmx -Xmn -Xss
- 关于java代码注释的codeTemplates
- java 解析json格式字符串
- java 解析json格式字符串
- java 解析json格式字符串
- Windows下配置Hadoop2.6-eclipse-plugin插件
- Intersection of Two Arrays
- java中的枚举
- java 内部类讲解
- Eclipse快捷键大全
- java垃圾收集机制(GC)