Za odabir datuma, HTML5 ima novu kontrolu prikazanu u nastavku.
Ovdje se može pristupiti gornjoj stranici
Ako vidimo DOM kontrole DateTime Picker, bit će samo jedan okvir za unos i datuma i vremena.
Dakle, da bismo prvo obradili ovu vrstu kontrole, ispunit ćemo datum bez odvajanja graničnikom, tj. Ako je datum 25.09.2013., Proslijedit ćemo 09252013 u okvir za unos. Kada završimo, fokus ćemo prebaciti s datuma na vrijeme pritiskom na 'tab' i vrijeme popunjavanja.
Ako trebamo ispuniti 14:45, proslijedit ćemo ga '0245PM' u isti okvir za unos.
Kôd za datapicker izgleda ovako -
import java.util.List;import 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;javna klasa DateTimePicker {@Testjavna void dateTimePicker () {System.setProperty ("webdriver.chrome.driver", "chromedriver.exe");Upravljački program WebDriver = novi ChromeDriver ();driver.manage (). timeouts (). implicitnoWait (10, TimeUnit.SECONDS);driver.get ("http://demo.guru99.com/test/");// Pronađite kontrolu vremena za odabir datumaWebElement dateBox = driver.findElement (By.xpath ("// obrazac // ulaz [@ name = 'bdaytime']"));// Datum popunjavanja u mm / dd / gggg kao 25.09.2013dateBox.sendKeys ("09252013");// Pritisnite jezičak za pomicanje fokusa na vremensko poljedateBox.sendKeys (Keys.TAB);// Vrijeme punjenja kao 14:45dateBox.sendKeys ("0245 PM");}}
Izlaz će biti poput-
Pogledajmo još jedan primjer Kalendara. Koristit ćemo kontrolu Telerik DateTimePicker. Ovdje se može pristupiti
Ovdje ako želimo promijeniti mjesec, moramo kliknuti sredinu zaglavlja kalendara.
Slično tome, ako trebamo promijeniti godinu, to možemo učiniti klikom na sljedeću ili prethodnu vezu na biraču datuma.
I na kraju za promjenu vremena s padajućeg izbornika možemo odabrati točno vrijeme (Napomena: Ovdje se vrijeme odabire u razmaku od 30 minuta, tj. 12:00, 12:30, 1:00, 1:30 itd.).
Kompletni primjer izgleda kao-
import java.util.Calendar;import java.util.List;import 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;javna klasa DatePicker {@Testpublic void testDAtePicker () baca izuzetak {// Datum i vrijeme koji se postavljaju u okvir za tekstString dateTime = "07.12.2014. 14:00";Upravljački program za 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 otvaranje kalendaraWebElement selectDate = driver.findElement (By.xpath ("// raspon [@ aria-controls = 'datetimepicker_dateview']"));selectDate.click ();// gumb za pomicanje sljedećeg u kalendaruWebElement nextLink = driver.findElement (By.xpath ("// div [@ id = 'datetimepicker_dateview'] // div [@ class = 'k-header'] // a [sadrži (@ klasu, 'k-nav- Sljedeći')]"));// gumb za klik u središtu zaglavlja kalendaraWebElement midLink = driver.findElement (By.xpath ("// div [@ id = 'datetimepicker_dateview'] // div [@ class = 'k-header'] // a [sadrži (@ klasu, 'k-nav- brzo')]"));// gumb za pomicanje prethodnog mjeseca u kalendaruWebElement previousLink = driver.findElement (By.xpath ("// div [@ id = 'datetimepicker_dateview'] // div [@ class = 'k-header'] // a [sadrži (@ klasu, 'k-nav- prev ')] "));// Podijelite datumsko vrijeme da biste dobili samo datumski dioNiz date_dd_MM_yyyy [] = (dateTime.split ("") [0]). Split ("/");// dobijemo godišnju razliku između tekuće godine i godine koju ćemo postaviti u kalanderint yearDiff = Integer.parseInt (date_dd_MM_yyyy [2]) - Calendar.getInstance (). get (Calendar.YEAR);midLink.click ();if (yearDiff! = 0) {// ako se morate preseliti sljedeće godineif (yearDiff> 0) {za (int i = 0; i" + i);nextLink.click ();}}// ako se morate preseliti prethodne godineinače ako (yearDiff <0) {za (int i = 0; i <(yearDiff * (- 1)); i ++) {System.out.println ("Razlika u godini ->" + i);previousLink.click ();}}}Navoj.spavanje (1000);// Preuzmi sve mjesece iz kalendara za odabir ispravnogPopis list_AllMonthToBook = driver.findElements (By.xpath ("// div [@ id = 'datetimepicker_dateview'] // tablica // tbody // td [not (contains (@ class, 'k-other-month') ))] "));list_AllMonthToBook.get (Integer.parseInt (date_dd_MM_yyyy [1]) - 1) .click ();Navoj.spavanje (1000);// dobiti sve datume iz kalendara za odabir ispravnogPopis list_AllDateToBook = driver.findElements (By.xpath ("// div [@ id = 'datetimepicker_dateview'] // tablica // tbody // td [not (contains (@ class, 'k-other-month') ))] "));list_AllDateToBook.get (Integer.parseInt (date_dd_MM_yyyy [0]) - 1) .click ();///ZA VRIJEMEWebElement selectTime = driver.findElement (By.xpath ("// raspon [@ aria-control = 'datetimepicker_timeview']"));// kliknite gumb za odabir vremenaselectTime.click ();// dobiti popis vremenaPopis allTime = driver.findElements (By.xpath ("// div [@ data-role = 'popup']] [sadrži (@ stil, 'prikaz: blok')] // ul // li [@role = 'opcija'] "));dateTime = dateTime.split ("") [1] + "" + dateTime.split ("") [2];// odaberemo točno vrijemeza (WebElement webElement: allTime) {if (webElement.getText (). equalsIgnoreCase (dateTime)){webElement.click ();}}}}
Izlaz će biti kao