如何使用Selenium Webdriver從日期選擇器div中選擇日期?
我們可以使用Selenium webdriver從日期選擇器中選擇日期。日曆中的日期選擇器可以在web UI上以多種方式設計。根據UI,我們需要設計我們的測試。
日曆可能包含用於選擇日、月或年的下拉選單。它還可能包含向前和向後導航,以便在日期中上下移動,或任何其他設計。下面的示例顯示了一個帶有日期選擇器的日曆。讓我們嘗試從下面的日曆中選擇2021年3月2日(2021年3月2日)的日期:
在上面的html程式碼中,我們可以看到日曆在一個由<table>標識的表格標籤內,它的日期由分別具有<tr>和<td>標籤的行和列表示(tr是td的父元素)。要選擇日期,我們需要使用findElements方法標識所有具有<td>標籤的元素。
此方法返回一個匹配元素列表。我們必須遍歷此列表,並使用getText方法檢查特定日期。一旦遇到所需日期,我們將選擇它並從迴圈中退出。
示例
import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; import java.util.concurrent.TimeUnit; import org.openqa.selenium.By; import java.util.List; public class DtPicker{ public static void main(String[] args) { System.setProperty("webdriver.gecko.driver", "C:\Users\ghs6kor\Desktop\Java\geckodriver.exe"); WebDriver driver = new FirefoxDriver(); //implicit wait driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS); //URL launch driver.get("https://jqueryui.com/datepicker"); //switch to frame WebElement f = driver .findElement(By.xpath("//iframe[@class='demo-frame']")); driver.switchTo().frame(f); //identify element within frame WebElement l = driver.findElement(By.id("datepicker")); l.click(); //identify all td elements in list List<WebElement> t =driver.findElements(By.xpath("//table/tbody/tr/td")); //list traversal for (int k = 0; k<t.size(); k++) { //check date String dt = t.get(k).getText(); if (dt.equals("2")) { t.get(k).click(); break; } } //obtain selected date String v = l.getAttribute("value"); System.out.print("Date selected by date picker: "+ v); //close browser driver.close(); } }
輸出
廣告