java+selenium实现火车票自动刷学生票

import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.interactions.HasInputDevices;

public class homeTicket {
private String url;

public String getUrl() {
    return url;
}
public void setUrl(String url) {
    this.url = url;
}

private WebDriver driver = null;
private String webBrowserPath = "";


public void init()  
 {  
         webBrowserPath = "chromedriver.exe" ;  
         System. setProperty( "webdriver.chrome.driver", webBrowserPath );  
         driver = new ChromeDriver();  
 }

public void quitDrvier()  
 {  
         if ( null != driver)  
        {  
                driver .quit();  
        }  
 }

public void waitForSecond()  
{  
        try  
       {  
              Thread. sleep(3000);  
       }  
        catch (InterruptedException e)  
       {  
              e.printStackTrace();  
       }  
}


public void waitForSecondLong()  
{  
        try  
       {  
              Thread. sleep(10000);  
       }  
        catch (InterruptedException e)  
       {  
              e.printStackTrace();  
       }  
}

public homeTicket() {
    this.url = "https://kyfw.12306.cn/otn/leftTicket/init";

}

public String getPath() {
    return url;
}


public void getContent() {

    init();

    driver.get(this.url);
    driver.manage().window().maximize();
    waitForSecond();

    driver.findElement(By.xpath("//*[@id=\"fromStationText\"]")).clear();
    driver.findElement(By.xpath("//*[@id=\"fromStationText\"]")).click();
    waitForSecond();
    driver.findElement(By.xpath("//*[@id=\"fromStationText\"]")).sendKeys("北京西");
    waitForSecond();
      ((HasInputDevices) driver).getKeyboard().sendKeys(Keys.ARROW_DOWN);  
        ((HasInputDevices) driver).getKeyboard().sendKeys(Keys.ARROW_DOWN); 
        ((HasInputDevices) driver).getKeyboard().sendKeys(Keys.RETURN);  
        waitForSecond();
    driver.findElement(By.xpath("//*[@id=\"toStationText\"]")).clear();
    driver.findElement(By.xpath("//*[@id=\"toStationText\"]")).click();
    waitForSecond();
    driver.findElement(By.xpath("//*[@id=\"toStationText\"]")).sendKeys("广州");
    ((HasInputDevices) driver).getKeyboard().sendKeys(Keys.ARROW_DOWN); 
     ((HasInputDevices) driver).getKeyboard().sendKeys(Keys.RETURN);  
    waitForSecond();

    driver.findElement(By.id("sf2_label")).click();     
    waitForSecond();
    driver.findElement(By.xpath("//*[@id=\"train_date\"]")).click();
    waitForSecond();
    /*2017年1月16日的学生火车票*/        driver.findElement(By.xpath("/html/body/div[30]/div[2]/div[2]/div[16]/div")).click();
    waitForSecond();
    driver.switchTo().defaultContent();

    while(true){
        driver.findElement(By.id("query_ticket")).click();  
        waitForSecondLong();
        try {
            String s1=driver.findElement(By.xpath("//*[@id=\"YW_2400000Z3501\"]")).getText().toString();
            String s2=driver.findElement(By.xpath("//*[@id=\"YW_240000Z2010D\"]")).getText().toString();

            System.out.println(s1+"*********"+s2);
            if(s1.equals("无")&&s2.equals("无")){
                continue;                   
            }else{
                while(true){

                    java.awt.Toolkit.getDefaultToolkit().beep(); 
                }

            }

        } catch (Exception e) {
            e.printStackTrace();
        }

    }   

}

public static void main(String[] args) {
    homeTicket parser=new homeTicket();
    parser.getContent();

}

}

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值