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.小結