A DateTime kiválasztásához a HTML5 egy új vezérlővel rendelkezik, amely az alábbiakban látható.
A fenti oldal itt érhető el
Ha látjuk a DateTime Picker vezérlő DOM-ját, akkor csak egy beviteli mező lesz a dátumra és az időre egyaránt.
Tehát az ilyen típusú vezérlés kezeléséhez először kitöltjük a dátumot anélkül, hogy elválasztanánk őket elválasztóval, azaz ha a dátum 2013.09.25., Akkor a 09252013-at továbbítjuk a beviteli mezőbe. Ha elkészült, a fület időről időre váltjuk a „tab” és a kitöltési idő megnyomásával.
Ha 14: 45-kor kell kitölteni, akkor '0245PM' -et adunk át ugyanahhoz a beviteli mezőhöz.
A datepicker kódja így néz ki -
import java.util.List;importálja a java.util.concurrent.TimeUnit;import org.openqa.selenium.By;import 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;public class DateTimePicker {@Tesztpublic void dateTimePicker () {System.setProperty ("webdriver.chrome.driver", "chromedriver.exe");WebDriver illesztőprogram = new ChromeDriver ();driver.manage (). timeouts (). implicitlyWait (10, TimeUnit.SECONDS);driver.get ("http://demo.guru99.com/test/");// Keresse meg a dátum és idő kiválasztó vezérlőtWebElement dateBox = driver.findElement (By.xpath ("// űrlap // bevitel [@ név = 'bdaytime']"));// A dátum kitöltése hh / nn / éééé, mint 2013. 09. 25dateBox.sendKeys ("09252013");// Nyomja meg a fület a fókusz időmezőre váltásáhozdateBox.sendKeys (Keys.TAB);// Kitöltési idő: 14:45dateBox.sendKeys ("0245PM");}}
A kimenet hasonló lesz
Vizsgáljuk meg a Naptár egy másik példáját. A Telerik DateTimePicker vezérlőt fogjuk használni. Itt érhető el
Itt, ha módosítanunk kell a hónapot, a naptárfejléc közepére kell kattintanunk.
Hasonlóképpen, ha meg kell változtatnunk az évet, akkor megtehetjük úgy, hogy a következő vagy az előző linkekre kattintunk az adatválasztón.
Végül az idő megváltoztatásához a legördülő menüből kiválaszthatjuk a pontos időt (Megjegyzés: Itt az idő 30 percen belül van kiválasztva, pl. 12:00, 12:30, 1:00, 1:30 stb.).
Egy teljes példa így néz ki:
import java.util.Calendar;import java.util.List;importálja a 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;public class DatePicker {@Tesztpublic void testDAtePicker () dobja a Kivételt {// DAte és az idő beállítása a szövegmezőbeString dateTime = "2014.07.12. 14:00";WebDriver illesztőprogram = new FirefoxDriver ();driver.manage (). window (). maximize ();driver.get ("https://demos.telerik.com/kendo-ui/datetimepicker/index");driver.manage (). timeouts (). implicitlyWait (10, TimeUnit.SECONDS);// gomb a naptár megnyitásáhozWebElement selectDate = driver.findElement (By.xpath ("// span [@ aria-controls = 'datetimepicker_dateview']"));selectDate.click ();// gomb a naptárban a következő lépéshezWebElement nextLink = driver.findElement (By.xpath ("// div [@ id = 'datetimepicker_dateview'] // div [@ class = 'k-header'] // a [tartalmaz (@ class, 'k-nav- következő')]"));// gombra kattintva a naptár fejlécének közepénWebElement midLink = driver.findElement (By.xpath ("// div [@ id = 'datetimepicker_dateview'] // div [@ class = 'k-header'] // a [tartalmaz (@ class, 'k-nav- gyors')]"));// gomb az előző hónap áthelyezéséhez a naptárbanWebElement előzőLink = driver.findElement (By.xpath ("// div [@ id = 'datetimepicker_dateview'] // div [@ class = 'k-header'] // a [tartalmaz (@ class, 'k-nav- előző ')] "));// A dátum és az idő felosztásával csak a dátumot kapjukString date_dd_MM_yyyy [] = (dateTime.split ("") [0]). Split ("/");// megkapja az aktuális év és az év közötti különbséget, amelyet kalanderbe kell állítaniint yearDiff = Integer.parseInt (date_dd_MM_yyyy [2]) - Calendar.getInstance (). get (Naptár.ÉV);midLink.click ();if (évDiff! = 0) {// ha jövőre költöznie kellif (évkülönbség> 0) {(int i = 0; i <évkülönbség; i ++) {System.out.println ("Év diff. ->" + i);nextLink.click ();}}// ha el kell költöznie az előző évreelse if (évkülönbség <0) {for (int i = 0; i <(évDiff * (- 1)); i ++) {System.out.println ("Év diff. ->" + i);előzőLink.click ();}}}Szál.alszik (1000);// A hónap kiválasztása a naptárból a megfelelő kiválasztásáhozListlist_AllMonthToBook = driver.findElements (By.xpath ("// div [@ id = 'datetimepicker_dateview'] // tábla // tbody // td [nem (tartalmazza (@ osztály, 'k-más hónap') ))] "));list_AllMonthToBook.get (Integer.parseInt (date_dd_MM_yyyy [1]) - 1) .click ();Szál.alszik (1000);// az összes dátum beolvasása a naptárból a helyes kiválasztásáhozList list_AllDateToBook = driver.findElements (By.xpath ("// div [@ id = 'datetimepicker_dateview'] // tábla // tbody // td [nem (tartalmazza (@ osztály, 'k-más-hónap') ))] "));list_AllDateToBook.get (Integer.parseInt (date_dd_MM_yyyy [0]) - 1) .click ();///IDŐREWebElement selectTime = driver.findElement (By.xpath ("// span [@ aria-controls = 'datetimepicker_timeview']"));// kattintson az időválasztó gombraselectTime.click ();// az idők listájának lekéréseSorolja fel a allTime = driver.findElements (By.xpath ("// div [@ data-role = 'popup']] [tartalmazza (@ style, 'display: block')] // ul // li [@role = 'opció'] "));dateTime = dateTime.split ("") [1] + "" + dateTime.split ("") [2];// válassza ki a helyes időtfor (WebElement webElement: allTime) {if (webElement.getText (). equalsIgnoreCase (dátumTime)){webElement.click ();}}}}
A kimenet olyan lesz