《手把手教你》系列技巧篇(三十七)-java+ selenium自動化測試-日曆時間控制元件-上篇(詳解教程)

巨集哥發表於2021-11-03

1.簡介

  我們在實際工作中,有可能遇到有些web產品,網頁上有一些時間選擇,然後支援按照不同時間段範圍去篩選資料。網頁上日曆控制元件一般,是一個文字輸入框,滑鼠點選,就會彈出日曆介面,可以選擇具體日期。這一篇,巨集哥就來介紹一下日曆控制元件是如何用selenium實現自動化。

2.JQueryUI網站

2.1被測網址

1.被測網址的地址:

 https://jqueryui.com/resources/demos/checkboxradio/default.html

2.網頁如下圖:

3.思路一

巨集哥這裡提供兩種思路,第一種:比較簡單將其看作是文字輸入框,直接按照日期格式輸入就可以了(馬上光棍節了,巨集哥直接輸入21年的光棍節)。

3.1程式碼設計

 根據第一種思路進行程式碼設計如下圖所示:

3.2參考程式碼

package lessons;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

/**
 * @author 北京-巨集哥
 * 
 * 《手把手教你》系列技巧篇(三十七)-java+ selenium自動化測試-日曆時間控制元件(詳解教程)
 *
 * 2021年10月31日
 */
public class calendar {

    public static void main(String[] args) {

        System.setProperty("webdriver.chrome.driver",".\\Tools\\chromedriver.exe");
        WebDriver driver = new ChromeDriver();
        try {
            driver.manage().window().maximize(); // 最大化視窗

            Thread.sleep(3000);

            driver.manage().window().maximize(); // 最大化視窗

            Thread.sleep(3000);

            driver.get("http://jqueryui.com/resources/demos/datepicker/default.html");

            Thread.sleep(5000);

            driver.findElement(By.id("datepicker")).sendKeys("11/11/2021");

            Thread.sleep(5000);

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            driver.quit();

        }
    }

}

3.3執行程式碼

1.執行程式碼,右鍵Run AS->java Application,控制檯輸出,如下圖所示:

2.執行程式碼後電腦端的瀏覽器的動作,如下小視訊所示:

 

4.思路二

第二種:通過元素定位,和手工操作一樣,將日期一步一步選擇點選出來。

4.1程式碼設計

 根據第二種思路進行程式碼設計如下圖所示:

4.2參考程式碼

package lessons;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

/**
 * @author 北京-巨集哥
 * 
 * 《手把手教你》系列技巧篇(三十七)-java+ selenium自動化測試-日曆時間控制元件(詳解教程)
 *
 * 2021年10月31日
 */
public class calendar {

    public static void main(String[] args) {

        System.setProperty("webdriver.chrome.driver",".\\Tools\\chromedriver.exe");
        WebDriver driver = new ChromeDriver();
        try
        {
             driver.manage().window().maximize();         //最大化視窗
 
             driver.get("http://jqueryui.com/resources/demos/datepicker/default.html");  
            
             Thread.sleep(2000);
             
             driver.findElement(By.id("datepicker")).click();
             
             Thread.sleep(8000);
             
             // 點選下一個月
             driver.findElement(By.xpath("//*[@id='ui-datepicker-div']/div/a[@data-handler='next']")).click();
             
             Thread.sleep(8000);
             
             // xpath定義第二行第五個元素,可能每個月排序不一樣,所以不一定點選的就是11日(2021-11-11)
             driver.findElement(By.xpath("//*[@id='ui-datepicker-div']/table/tbody/tr[2]/td[5]/a")).click();
             
             Thread.sleep(5000);
             
             System.out.println("光棍節快樂!");   
             
        }catch (Exception e){
            e.printStackTrace();
        }finally{
            driver.quit();
        }
    }

}

4.3執行程式碼

1.執行程式碼,右鍵Run AS->java Application,控制檯輸出,如下圖所示:

2.執行程式碼後電腦端的瀏覽器的動作,如下小視訊所示:

 

5.小結

 

相關文章