Pro výběr DateTime má HTML5 nový ovládací prvek zobrazený níže.
Výše uvedená stránka je přístupná zde
Pokud vidíme DOM ovládacího prvku Výběr data a času, bude existovat pouze jedno vstupní pole pro datum i čas.
Abychom tedy tento typ kontroly zvládli jako první, vyplníme datum bez oddělení oddělovačem, tj. Pokud je datum 25. 9. 2013, pak do vstupního pole předáme 09252013. Po dokončení přesuneme fokus z data na čas stisknutím klávesy „tab“ a vyplněním času.
Pokud potřebujeme vyplnit 14:45, předáme mu „0245PM“ do stejného vstupního pole.
Kód pro datepicker vypadá takto -
import java.util.List;import java.util.concurrent.TimeUnit;import org.openqa.selenium.By;importovat org.openqa.selenium.Keys;import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;import org.openqa.selenium.chrome.ChromeDriver;import org.testng.annotations.Test;veřejná třída DateTimePicker {@Testpublic void dateTimePicker () {System.setProperty ("webdriver.chrome.driver", "chromedriver.exe");Ovladač WebDriver = nový ChromeDriver ();driver.manage (). timeouts (). implicitlyWait (10, TimeUnit.SECONDS);driver.get ("http://demo.guru99.com/test/");// Najít ovládací prvek pro výběr data a časuWebElement dateBox = driver.findElement (By.xpath ("// formulář // vstup [@ name = 'bdaytime']"));// Vyplňte datum jako mm / dd / rrrr jako 25. 9. 2013dateBox.sendKeys ("09252013");// Stisknutím tab přepnete fokus na časové poledateBox.sendKeys (Keys.TAB);// Čas vyplňte jako 14:45dateBox.sendKeys ("0245PM");}}
Výstup bude jako-
Podívejme se na další příklad kalendáře. Použijeme ovládání Telerik DateTimePicker. Zde je přístupný
Zde, pokud potřebujeme změnit měsíc, musíme kliknout na střed záhlaví kalendáře.
Podobně, pokud potřebujeme změnit rok, můžeme to udělat kliknutím na další nebo předchozí odkazy na datovém pásku.
A nakonec pro změnu času můžeme z rozbalovací nabídky vybrat správný čas (Poznámka: Zde je čas vybrán v mezeře 30 minut, tj. 12:00, 12:30, 1:00, 1:30 atd.).
Kompletní příklad vypadá jako-
import java.util.Calendar;import java.util.List;import java.util.concurrent.TimeUnit;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;import org.openqa.selenium.firefox.FirefoxDriver;import org.testng.annotations.Test;veřejná třída DatePicker {@Testpublic void testDAtePicker () vyvolá výjimku {// DAte a Time to be set in textboxString dateTime = "07.07.2014 14:00";Ovladač WebDriver = nový FirefoxDriver ();driver.manage (). window (). maximize ();driver.get ("https://demos.telerik.com/kendo-ui/datetimepicker/index");driver.manage (). timeouts (). implicitlyWait (10, TimeUnit.SECONDS);// tlačítko pro otevření kalendářeWebElement selectDate = driver.findElement (By.xpath ("// span [@ aria-controls = 'datetimepicker_dateview']"));selectDate.click ();// tlačítko pro přesun na další v kalendářiWebElement nextLink = driver.findElement (By.xpath ("// div [@ id = 'datetimepicker_dateview'] // div [@ class = 'k-header'] // a [obsahuje (@ class, 'k-nav- další')]"));// tlačítko pro kliknutí uprostřed záhlaví kalendářeWebElement midLink = driver.findElement (By.xpath ("// div [@ id = 'datetimepicker_dateview'] // div [@ class = 'k-header'] // a [obsahuje (@ class, 'k-nav- rychle')]"));// tlačítko pro přesun předchozího měsíce v kalendářiWebElement previousLink = driver.findElement (By.xpath ("// div [@ id = 'datetimepicker_dateview'] // div [@ class = 'k-header'] // a [obsahuje (@ class, 'k-nav- předchozí ')] "));// Rozdělte datum a čas, abyste získali pouze část dataŘetězec date_dd_MM_yyyy [] = (dateTime.split ("") [0]). Split ("/");// získáte roční rozdíl mezi aktuálním rokem a rokem, který nastavíte v kalandruint yearDiff = Integer.parseInt (date_dd_MM_yyyy [2]) - Calendar.getInstance (). get (Calendar.YEAR);midLink.click ();if (yearDiff! = 0) {// pokud se budete muset stěhovat příští rokif (yearDiff> 0) {pro (int i = 0; i" + i);nextLink.click ();}}// pokud se musíte přesunout předchozí rokjinak if (yearDiff <0) {pro (int i = 0; i <(yearDiff * (- 1)); i ++) {System.out.println ("Rozdíl roku ->" + i);previousLink.click ();}}}Závit. Spánek (1000);// Získejte všechny měsíce z kalendáře a vyberte ten správnýSeznam list_AllMonthToBook = driver.findElements (By.xpath ("// div [@ id = 'datetimepicker_dateview'] // tabulka // tbody // td [ne (obsahuje (@ class, 'k-other-month') ))] "));list_AllMonthToBook.get (Integer.parseInt (date_dd_MM_rrrr [1]) - 1) .click ();Závit. Spánek (1000);// získejte všechna data z kalendáře a vyberte správnéSeznam list_AllDateToBook = driver.findElements (By.xpath ("// div [@ id = 'datetimepicker_dateview'] // tabulka // tbody // td [ne (obsahuje (@ class, 'k-other-month') ))] "));list_AllDateToBook.get (Integer.parseInt (date_dd_MM_rrrr [0]) - 1) .click ();///ZA ČASWebElement selectTime = driver.findElement (By.xpath ("// span [@ aria-controls = 'datetimepicker_timeview']"));// tlačítko pro výběr časuselectTime.click ();// získat seznam časůSeznam allTime = driver.findElements (By.xpath ("// div [@ data-role = 'popup'] [obsahuje (@ style, 'display: block')]) // ul // li [@role = 'option'])));dateTime = dateTime.split ("") [1] + "" + dateTime.split ("") [2];// vyberte správný časpro (WebElement webElement: allTime) {if (webElement.getText (). equalsIgnoreCase (dateTime)){webElement.click ();}}}}
Výstup bude jako