Za izbiro DateTime ima HTML5 nov kontrolnik, prikazan spodaj.
Tu lahko dostopate do zgornje strani
Če vidimo DOM nadzora DateTime Picker, bo za datum in čas samo eno vnosno polje.
Torej, da bomo najprej obdelali to vrsto nadzora, bomo datum izpolnili brez ločevanja, tj. Če je datum 25.9.2013, bomo 09252013 predali v polje za vnos. Ko končamo, bomo s pritiskom na 'jeziček' in čas polnjenja premaknili fokus z datuma na čas.
Če moramo napolniti 14.45, bomo v isto vnosno polje posredovali '0245PM'.
Koda za datepicker je videti takole -
uvoz java.util.List;uvoz java.util.concurrent.TimeUnit;uvoz org.openqa.selenium.By;uvoz org.openqa.selenium.Keys;uvoz org.openqa.selenium.WebDriver;uvoz org.openqa.selenium.WebElement;uvoz org.openqa.selenium.chrome.ChromeDriver;import org.testng.annotations.Test;javni razred DateTimePicker {@Testpublic void dateTimePicker () {System.setProperty ("webdriver.chrome.driver", "chromedriver.exe");Gonilnik WebDriver = nov ChromeDriver ();driver.manage (). timeouts (). implicitnoWait (10, TimeUnit.SECONDS);driver.get ("http://demo.guru99.com/test/");// Poiščite kontrolnik za izbiro datuma in časaWebElement dateBox = driver.findElement (By.xpath ("// obrazec // vnos [@ name = 'bdaytime']"));// Datum izpolnitve kot mm / dd / llll let 25.9.2013dateBox.sendKeys ("09252013");// Pritisnite zavihek, da premaknete fokus na časovno poljedateBox.sendKeys (Keys.TAB);// Čas polnjenja je ob 14.45dateBox.sendKeys ("0245 PM");}}
Izhod bo približno
Oglejmo si še en primer koledarja. Uporabili bomo nadzor Telerik DateTimePicker. Dostopno tukaj
Če moramo spremeniti mesec, moramo klikniti sredino glave koledarja.
Če moramo spremeniti leto, lahko to storimo s klikom na naslednjo ali prejšnjo povezavo na izbirniku datuma.
In na koncu za spremembo časa lahko iz spustnega menija izberemo pravi čas (Opomba: Tukaj je čas izbran v razmiku 30 minut, tj. 12:00, 12:30, 1:00, 1:30 itd.)
Popoln primer je videti -
uvoz java.util.Calendar;uvoz java.util.List;uvoz java.util.concurrent.TimeUnit;uvoz org.openqa.selenium.By;uvoz org.openqa.selenium.WebDriver;uvoz org.openqa.selenium.WebElement;uvoz org.openqa.selenium.firefox.FirefoxDriver;import org.testng.annotations.Test;javni razred DatePicker {@Testpublic void testDAtePicker () vrže izjemo {// Datum in čas, ki se nastavita v besedilnem poljuString dateTime = "07.12.2014 14:00";Gonilnik WebDriver = novi FirefoxDriver ();driver.manage (). window (). maximize ();driver.get ("https://demos.telerik.com/kendo-ui/datetimepicker/index");driver.manage (). timeouts (). implicitnoWait (10, TimeUnit.SECONDS);// gumb za odpiranje koledarjaWebElement selectDate = driver.findElement (By.xpath ("// razpon [@ aria-control = 'datetimepicker_dateview']")));selectDate.click ();// gumb za premik naslednjega v koledarjuWebElement nextLink = driver.findElement (By.xpath ("// div [@ id = 'datetimepicker_dateview'] // div [@ class = 'k-header'] // a [vsebuje (@ razred, 'k-nav- Naslednji')]"));// gumb za klik v sredino glave koledarjaWebElement midLink = driver.findElement (By.xpath ("// div [@ id = 'datetimepicker_dateview'] // div [@ class = 'k-header'] // a [vsebuje (@ razred, 'k-nav- hitro ')] "));// gumb za premik prejšnjega meseca v koledarjuWebElement previousLink = driver.findElement (By.xpath ("// div [@ id = 'datetimepicker_dateview'] // div [@ class = 'k-header'] // a [vsebuje (@ razred, 'k-nav- prev ')] "));// Razdelimo datumski čas, da dobimo samo datumski delNiz date_dd_MM_yyyy [] = (dateTime.split ("") [0]). Split ("/");// dobimo razliko v letu med tekočim letom in letom, ki ga nastavimo v kalandruint yearDiff = Integer.parseInt (date_dd_MM_llll [2]) - Calendar.getInstance (). get (Calendar.YEAR);midLink.click ();if (yearDiff! = 0) {// če se morate preseliti naslednje letoif (yearDiff> 0) {za (int i = 0; i" + i);nextLink.click ();}}// če se morate preseliti prejšnje letosicer če (yearDiff <0) {for (int i = 0; i <(yearDiff * (- 1)); i ++) {System.out.println ("Razlika v letu ->" + i);previousLink.click ();}}}Navoj.spanje (1000);// Pridobite vse mesece iz koledarja, da izberete pravilnegaSeznam list_AllMonthToBook = driver.findElements (By.xpath ("// div [@ id = 'datetimepicker_dateview'] // tabela // tbody // td [not (vsebuje (@ class, 'k-other-month') ))] "));list_AllMonthToBook.get (Integer.parseInt (date_dd_MM_yyyy [1]) - 1) .click ();Navoj.spanje (1000);// pridobimo vse datume iz koledarja, da izberemo pravilnegaSeznam list_AllDateToBook = driver.findElements (By.xpath ("// div [@ id = 'datetimepicker_dateview'] // tabela // tbody // td [not (vsebuje (@ class, 'k-other-month') ))] "));list_AllDateToBook.get (Integer.parseInt (date_dd_MM_yyyy [0]) - 1) .click ();/// ZA ČASWebElement selectTime = driver.findElement (By.xpath ("// razpon [@ aria-control = 'datetimepicker_timeview']"));// kliknemo gumb za izbiro časaselectTime.click ();// dobimo seznam časovSeznam allTime = driver.findElements (By.xpath ("// div [@ data-role = 'popup']] [vsebuje (@ slog, 'prikaz: blok')] // ul // li [@role = 'možnost'] "));dateTime = dateTime.split ("") [1] + "" + dateTime.split ("") [2];// izberemo pravi časza (WebElement webElement: allTime) {if (webElement.getText (). equalsIgnoreCase (dateTime)){webElement.click ();}}}}
Rezultat bo všeč