Kā atlasīt datumu no DatePicker / Calendar programmā Selenium Webdriver

Anonim

Datuma un laika izvēlei HTML5 ir jauna vadīkla, kas parādīta zemāk.

Virs lapas var piekļūt šeit

Ja mēs redzam DateTime Picker vadības DOM, datumam un laikam būs tikai viena ievades lodziņš.

Tātad, lai vispirms rīkotos ar šāda veida kontroli, datums tiks aizpildīts, neatdalot ar atdalītāju, ti, ja datums ir 25/25/2013, tad ievadīsim 09252013 ievades lodziņā. Kad tas būs izdarīts, mēs mainīsim fokusu no datuma uz laiku, nospiežot cilni un aizpildīšanas laiku.

Ja mums ir jāaizpilda pulksten 14:45, mēs tai pašā ievades lodziņā nosūtīsim “0245PM”.

Datepicker kods izskatās šādi -

importēt java.util.List;importēt java.util.concurrent.TimeUnit;importēt org.openqa.selenium.By;importēt org.openqa.selenium.Keys;importēt org.openqa.selenium.WebDriver;importēt org.openqa.selenium.WebElement;importēt org.openqa.selenium.chrome.ChromeDriver;importēt org.testng.annotations.Test;publiskā klase DateTimePicker {@Pārbaudepublic void dateTimePicker () {System.setProperty ("webdriver.chrome.driver", "chromedriver.exe");WebDriver draiveris = jauns ChromeDriver ();draiveris.manage (). taimauts (). implicitlyWait (10, TimeUnit.SECONDS);driver.get ("http://demo.guru99.com/test/");// Atrodiet datuma un laika atlasītāja vadībuWebElement dateBox = driver.findElement (By.xpath ("// forma // ievade [@ name = 'bdaytime']"));// Aizpildiet datumu kā mm / dd / gggg kā 25.09.2013dateBox.sendKeys ("09252013");// Nospiediet tabulēšanas taustiņu, lai novirzītu fokusu uz laika laukudateBox.sendKeys (Keys.TAB);// Aizpildiet laiku pulksten 14:45dateBox.sendKeys ("0245PM");}}

Rezultāts būs līdzīgs

Apskatīsim citu kalendāra piemēru. Mēs izmantosim Telerik DateTimePicker vadību. Var piekļūt šeit

Ja mums ir jāmaina mēnesis, mums jānoklikšķina uz kalendāra galvenes vidus.

Līdzīgi, ja mums ir jāmaina gads, mēs to varam izdarīt, noklikšķinot uz nākamās vai iepriekšējās saites datepicker.

Un, visbeidzot, lai mainītu laiku, nolaižamajā izvēlnē varam izvēlēties pareizo laiku (piezīme: šeit laiks tiek izvēlēts 30 minūšu intervālā, ti, 12:00, 12:30, 1:00, 1:30 utt.).

Pilnīgs piemērs izskatās kā

importēt java.util.Calendar;importēt java.util.List;importēt java.util.concurrent.TimeUnit;importēt org.openqa.selenium.By;importēt org.openqa.selenium.WebDriver;importēt org.openqa.selenium.WebElement;importēt org.openqa.selenium.firefox.FirefoxDriver;importēt org.testng.annotations.Test;publiskā klase DatePicker {@Pārbaudepublic void testDAtePicker () izmet izņēmumu {// DAte un laiks, kas jāiestata tekstlodziņāString dateTime = "2014. gada 12. jūlija 14:00";WebDriver draiveris = jauns FirefoxDriver ();draiveris.pārvaldīt (). logs (). maksimizēt ();driver.get ("https://demos.telerik.com/kendo-ui/datetimepicker/index");draiveris.manage (). taimauts (). implicitlyWait (10, TimeUnit.SECONDS);// poga, lai atvērtu kalendāruWebElement selectDate = driver.findElement (By.xpath ("// span [@ aria-controls = 'datetimepicker_dateview']"));selectDate.click ();// poga, lai pārvietotos nākamajā kalendārāWebElement nextLink = driver.findElement (By.xpath ("// div [@ id = 'datetimepicker_dateview'] // div [@ class = 'k-header'] // a [satur (@ class, 'k-nav- Nākamais')]"));poga //, lai noklikšķinātu kalendāra galvenes centrāWebElement midLink = driver.findElement (By.xpath ("// div [@ id = 'datetimepicker_dateview'] // div [@ class = 'k-header'] // a [satur (@ class, 'k-nav- ātri ')] "));// poga, lai kalendārā pārvietotu iepriekšējo mēnesiWebElement previousLink = driver.findElement (By.xpath ("// div [@ id = 'datetimepicker_dateview'] // div [@ class = 'k-header'] // a [satur (@ class, 'k-nav- iepriekšējais ')] "));// Sadaliet datuma laiku, lai iegūtu tikai datuma daļuVirkne date_dd_MM_yyyy [] = (dateTime.split ("") [0]). Split ("/");// iegūt gada starpību starp pašreizējo gadu un gadu, kas jāiestata kalanderāint yearDiff = Integer.parseInt (date_dd_MM_yyyy [2]) - Calendar.getInstance (). get (Kalendārs.GADS);midLink.click ();ja (gadsDiff! = 0) {// ja nākošgad jāpārceļasja (gada starpība> 0) {par (int i = 0; i " + i);nextLink.click ();}}// ja jāpārceļas iepriekšējā gadācits, ja (gadsDiff <0) {par (int i = 0; i <(gadsDiff * (- 1)); i ++) {System.out.println ("Gada diff. ->" + i);previousLink.click ();}}}Vītne.miegs (1000);// Iegūstiet visus mēnešus no kalendāra, lai izvēlētos pareizoSaraksts  list_AllMonthToBook = driver.findElements (By.xpath ("// div [@ id = 'datetimepicker_dateview'] // tabula // tbody // td [not (satur (@ klase, 'k-cits mēnesis') ))] "));list_AllMonthToBook.get (Integer.parseInt (date_dd_MM_yyyy [1]) - 1) .klikšķis ();Vītne.miegs (1000);// iegūt visus kalendāra datumus, lai izvēlētos pareizoSaraksts  list_AllDateToBook = driver.findElements (By.xpath ("// div [@ id = 'datetimepicker_dateview'] // tabula // tbody // td [not (satur (@ klase, 'k-cits-mēnesis') ))] "));list_AllDateToBook.get (Integer.parseInt (date_dd_MM_yyyy [0]) - 1) .klikšķis ();/// LAIKAMWebElement selectTime = driver.findElement (By.xpath ("// span [@ aria-controls = 'datetimepicker_timeview']"));// noklikšķiniet uz laika atlasītāja pogasselectTime.click ();// iegūt laiku sarakstuUzskaitiet  allTime = driver.findElements (By.xpath ("// div [@ data-role = 'popup']] [satur (@ style, 'display: block')] // ul // li [@role = 'variants'] "));dateTime = dateTime.split ("") [1] + "" + dateTime.split ("") [2];// izvēlieties pareizo laikudomēnam (WebElement webElement: allTime) {ja (webElement.getText (). equalsIgnoreCase (dateTime)){webElement.click ();}}}}

Rezultāts būs kā