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();

}

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章