Java写的自动抢购红米note手机(2016/4/6 米粉节)

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>


3cd进入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开启,一直等待吧,祝你好运。

 

 

参考文献:

1maven创建java项目  http://www.yiibai.com/maven/create-a-java-project-with-maven.html

2seleniumwebdriver

http://docs.seleniumhq.org/docs/03_webdriver.jsp#setting-up-a-selenium-webdriver-project
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值