如何使用 Selenium WebDriver 自动化日历进行测试?
我们可以使用 Selenium webdriver 自动化日历。自动化日历上的测试可能有点困难,因为在 Web UI 中,不同日历的日期、月份和年份选择可能不同。
日历可以采用下拉选择的形式,也可以使用后退和前进按钮来选择日期的上移和下移,或具有任何其他功能。让我们看一个在以下日历中选择 03/02/2021(2021 年 3 月 2 日) 的示例 -
在上面的示例中,日历位于一个表格中。表格由 <table> 标记表示,其行由 <tr> 标记表示,列由 <td> 标记表示。
要选择日期,我们必须借助 findElements 方法访问 td 标记内的所有元素。
findElements 方法返回一个元素列表。我们将遍历此列表(使用循环)并搜索特定日期。一旦获得所需的日期,我们就会单击它,然后退出循环。
示例
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 CalendarDt{ 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.jqueryjs.cn/datepicker/#date%E2%88%92range"); //identify and switch to frame WebElement r = driver.findElement(By.xpath("//iframe[@class='demo-frame']")); driver.switchTo().frame(r); //identify element WebElement e = driver.findElement(By.id("datepicker")); e.click(); //identify elements with td tag in list List<WebElement> d =driver.findElements(By.xpath("//table/tbody/tr/td")); //iterate list for (int i = 0; i<d.size(); i++) { //check expected data String s = d.get(i).getText(); if (s.equals("2")) { d.get(i).click(); break; } } //get data selected String m = e.getAttribute("value"); System.out.print("Date selected in calendar is: "+ m); //close browser driver.quit(); } }
输出
广告