您的位置:首页 > 编程语言 > Java开发

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: