Kuidas Selenium Webdriveris kuupäeva valida kuupäevavalijast / kalendrist

Anonim

Kuupäeva ja kellaaja valimiseks on HTML5-l allpool uus juhtelement.

Ülaltoodud lehele pääseb siit

Kui näeme DateTime Pickeri juhtelemendi DOM-i, on nii kuupäeva kui ka kellaaja jaoks ainult üks sisestuskast.

Niisiis täidame seda tüüpi juhtimisega kõigepealt kuupäeva eraldajana eraldamata, st kui kuupäev on 25/25/2013, siis edastame 09252013 sisendkasti. Kui see on tehtud, liigutame fookuse kuupäevast kellaajaks, vajutades vahekaarti ja täitmise aega.

Kui peame täitma kell 14.45, edastame selle samale sisendkastile „0245PM”.

Datepickeri kood näeb välja selline -

import java.util.List;import java.util.concurrent.TimeUnit;import org.openqa.selenium.By;import org.openqa.selenium.Kesys;import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;import org.openqa.selenium.chrome.ChromeDriver;import org.testng.annotations.Test;avalik klass DateTimePicker {@Testpublic void dateTimePicker () {System.setProperty ("veebidraiver.chrome.driver", "chromedriver.exe");WebDriveri draiver = uus ChromeDriver ();driver.manage (). timeout (). implicitlyWait (10, TimeUnit.SECONDS);driver.get ("http://demo.guru99.com/test/");// Leidke kuupäeva ja aja valija juhtelementWebElement dateBox = driver.findElement (By.xpath ("// vorm // sisend [@ nimi = 'bdaytime']"));// Täitke kuupäev kk / pp / aaaa kuupäevana 25.09.2013dateBox.sendKeys ("09252013");// Fookuse ajaväljale vahetamiseks vajutage tabulaatoritdateBox.sendKeys (võtmed.TAB);// Täitke aeg kell 14.45dateBox.sendKeys ("0245PM");}}

Väljund on nagu

Vaatame veel ühte kalendri näidet. Kasutame Teleriku DateTimePickeri juhtimist. Juurdepääs on siin

Siin, kui peame kuud muutma, peame klõpsama kalendri päise keskel.

Samamoodi, kui peame muutma aastat, saame seda teha, klõpsates järgmisel või eelmistel linkidel datepickeril.

Ja lõpuks aja muutmiseks saame valida rippmenüüst õige kellaaja (märkus: siin valitakse aeg 30-minutise vahega, st 12:00, 12:30, 1:00, 1:30 jne).

Täielik näide näeb välja

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;avalik klass DatePicker {@Testpublic void testDAtePicker () viskab erandi {// DAte ja tekstikastis määratav aegString dateTime = "12.07.2014 14:00";WebDriveri draiver = uus FirefoxDriver ();draiver.halda (). aken (). maksimeeri ();driver.get ("https://demos.telerik.com/kendo-ui/datetimepicker/index");driver.manage (). timeout (). implicitlyWait (10, TimeUnit.SECONDS);// nupp kalendri avamiseksWebElement selectDate = driver.findElement (By.xpath ("// span [@ aria-controls = 'datetimepicker_dateview']"));selectDate.click ();Kalender järgmiseks liikumiseks nupp //WebElement nextLink = driver.findElement (By.xpath ("// div [@ id = 'datetimepicker_dateview'] // div [@ class = 'k-header'] // a [sisaldab (@ class, 'k-nav- järgmine ')] "));Nupp //, et klõpsata kalendri päise keskelWebElement midLink = driver.findElement (By.xpath ("// div [@ id = 'datetimepicker_dateview'] // div [@ class = 'k-header'] // a [sisaldab (@ class, 'k-nav- kiire ')] "));Eelmise kuu kalendris teisaldamiseks nupp //WebElement previousLink = driver.findElement (By.xpath ("// div [@ id = 'datetimepicker_dateview'] // div [@ class = 'k-header'] // a [sisaldab (@ class, 'k-nav- eelmine ')] "));// Jagage kuupäeva kellaaeg ainult kuupäevaosa saamiseksString date_dd_MM_yyyy [] = (dateTime.split ("") [0]). Split ("/");// saada kalandrisse seatava aasta vahe jooksva aasta ja aasta vahelint yearDiff = täisarv.parseInt (kuupäev_dd_MM_yyyy [2]) - Calendar.getInstance (). get (Calendar.YEAR);midLink.click ();kui (aastaDiff! = 0) {// kui peate järgmisel aastal kolimakui (aasta erinevus> 0) {jaoks (int i = 0; i " + i);järgmineLink.klõps ();}}// kui peate eelmisel aastal kolimaelse if (aasta erinevus dif <0) {jaoks (int i = 0; i <(aastaDiff * (- 1)); i ++) {System.out.println ("Aasta erinevus ->" + i);eelmineLink.click ();}}}Niit.unne (1000);// Õige kuu valimiseks hankige kalendrist kõik kuudLoend  list_AllMonthToBook = driver.findElements (By.xpath ("// div [@ id = 'datetimepicker_dateview'] // tabel // tbody // td [not (sisaldab (@ klass, 'k-muu-kuu') ))] "));list_AllMonthToBook.get (Integer.parseInt (date_dd_MM_yyyy [1]) - 1) .klõps ();Niit.unne (1000);// hankige kalendrist õige kuupäeva valimiseks kõik kuupäevadLoend  list_AllDateToBook = driver.findElements (By.xpath ("// div [@ id = 'datetimepicker_dateview'] // tabel // tbody // td [not (sisaldab (@ klass, 'k-muu-kuu') ))] "));list_AllDateToBook.get (Integer.parseInt (date_dd_MM_yyyy [0]) - 1) .click ();/// AJAKSWebElement selectTime = driver.findElement (By.xpath ("// span [@ aria-controls = 'datetimepicker_timeview']"));// klõpsake ajavalija nuppuselectTime.click ();// saada aegade loendLoend  allTime = driver.findElements (By.xpath ("// div [@ data-role = 'popup']] [sisaldab (@ style, 'display: block')] // ul // li [@role = 'variant'] "));dateTime = dateTime.split ("") [1] + "" + dateTime.split ("") [2];// vali õige aegfor (WebElement webElement: allTime) {if (webElement.getText (). equalsIgnoreCase (dateTime)){webElement.click ();}}}}

Väljund saab olema selline