Untuk pemilihan DateTime, HTML5 memiliki kontrol baru yang ditunjukkan di bawah ini.
Halaman di atas dapat diakses di sini
Jika kita melihat DOM dari kontrol DateTime Picker, hanya akan ada satu kotak input untuk tanggal dan waktu.
Jadi untuk menangani jenis kontrol ini terlebih dahulu kita akan mengisi tanggal tanpa memisahkan dengan pembatas, yaitu jika tanggal 09/25/2013, maka kita akan meneruskan 09252013 ke kotak input. Setelah selesai, kami akan mengalihkan fokus dari waktu ke waktu dengan menekan 'tab' & mengisi waktu.
Jika kita perlu mengisi 02:45, kita akan meneruskannya ke '0245PM' ke kotak input yang sama.
Kode untuk datepicker terlihat seperti ini -
import java.util.List;import java.util.concurrent.TimeUnit;import org.openqa.selenium.By;impor org.openqa.selenium.Keys;import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;impor org.openqa.selenium.chrome.ChromeDriver;import org.testng.annotations.Test;kelas publik DateTimePicker {@Ujipublic void dateTimePicker () {System.setProperty ("webdriver.chrome.driver", "chromedriver.exe");Driver WebDriver = new ChromeDriver ();driver.manage (). timeout (). implicitlyWait (10, TimeUnit.SECONDS);driver.get ("http://demo.guru99.com/test/");// Temukan kontrol pemilih waktu tanggalWebElement dateBox = driver.findElement (By.xpath ("// form // input [@ name = 'bdaytime']"));// Isi tanggal sebagai bb / hh / tttt sebagai 09/25/2013dateBox.sendKeys ("09252013");// Tekan tab untuk mengalihkan fokus ke bidang waktudateBox.sendKeys (Keys.TAB);// Isi waktu 14:45dateBox.sendKeys ("0245PM");}}
Outputnya akan seperti-
Mari kita lihat contoh Kalender lainnya. Kami akan menggunakan kontrol Telerik DateTimePicker. Bisa diakses disini
Di sini jika kita perlu mengubah bulan, kita harus mengklik di tengah tajuk kalender.
Demikian pula jika kita perlu mengubah tahun maka kita dapat melakukannya dengan mengklik tautan berikutnya atau sebelumnya pada datepicker.
Dan akhirnya untuk mengubah waktu kita dapat memilih waktu yang tepat dari dropdown (Catatan: Di sini waktu dipilih dalam jeda 30 menit yaitu, 12:00, 12:30, 1:00, 1:30 dll.).
Contoh lengkap terlihat seperti-
impor 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;impor org.openqa.selenium.firefox.FirefoxDriver;import org.testng.annotations.Test;kelas publik DatePicker {@Ujipublic void testDAtePicker () melempar Exception {// DAte dan Waktu untuk diatur dalam kotak teksString dateTime = "12/07/2014 2:00 PM";Driver WebDriver = FirefoxDriver baru ();driver.manage (). window (). maksimalkan ();driver.get ("https://demos.telerik.com/kendo-ui/datetimepicker/index");driver.manage (). timeout (). implicitlyWait (10, TimeUnit.SECONDS);// tombol untuk membuka kalenderWebElement selectDate = driver.findElement (By.xpath ("// span [@ aria-control = 'datetimepicker_dateview']"));selectDate.click ();// tombol untuk pindah berikutnya di kalenderWebElement nextLink = driver.findElement (By.xpath ("// div [@ id = 'datetimepicker_dateview'] // div [@ class = 'k-header'] // a [berisi (@ class, 'k-nav- lanjut')]"));// tombol untuk mengklik di tengah tajuk kalenderWebElement midLink = driver.findElement (By.xpath ("// div [@ id = 'datetimepicker_dateview'] // div [@ class = 'k-header'] // a [berisi (@ class, 'k-nav- cepat')]"));// tombol untuk memindahkan bulan sebelumnya di kalenderWebElement beforeLink = driver.findElement (By.xpath ("// div [@ id = 'datetimepicker_dateview'] // div [@ class = 'k-header'] // a [berisi (@ class, 'k-nav- sebelumnya ')] "));// Pisahkan waktu tanggal untuk mendapatkan hanya bagian tanggalString date_dd_MM_yyyy [] = (dateTime.split ("") [0]). Split ("/");// dapatkan perbedaan tahun antara tahun ini dan tahun untuk disetel dalam kalanderint yearDiff = Integer.parseInt (date_dd_MM_yyyy [2]) - Calendar.getInstance (). get (Calendar.YEAR);midLink.click ();if (yearDiff! = 0) {// jika kamu harus pindah tahun depanif (yearDiff> 0) {untuk (int i = 0; i" + i);nextLink.click ();}}// jika Anda harus pindah tahun sebelumnyaelse if (yearDiff <0) {untuk (int i = 0; i <(yearDiff * (- 1)); i ++) {System.out.println ("Tahun Diff ->" + i);PreviousLink.click ();}}}Thread.sleep (1000);// Dapatkan semua bulan dari kalender untuk memilih yang benarDaftar list_AllMonthToBook = driver.findElements (By.xpath ("// div [@ id = 'datetimepicker_dateview'] // table // tbody // td [not (berisi (@ class, 'k-other-month') ))] "));list_AllMonthToBook.get (Integer.parseInt (date_dd_MM_yyyy [1]) - 1) .click ();Thread.sleep (1000);// dapatkan semua tanggal dari kalender untuk memilih yang benarDaftar list_AllDateToBook = driver.findElements (By.xpath ("// div [@ id = 'datetimepicker_dateview'] // table // tbody // td [not (berisi (@ class, 'k-other-month') ))] "));list_AllDateToBook.get (Integer.parseInt (date_dd_MM_yyyy [0]) - 1) .click ();/// UNTUK WAKTUWebElement selectTime = driver.findElement (By.xpath ("// span [@ aria-control = 'datetimepicker_timeview']"));// klik tombol pemilih waktuselectTime.click ();// dapatkan daftar waktuDaftar allTime = driver.findElements (By.xpath ("// div [@ data-role = 'popup'] [berisi (@ style, 'display: block')] // ul // li [@role = 'opsi'] "));dateTime = dateTime.split ("") [1] + "" + dateTime.split ("") [2];// pilih waktu yang tepatuntuk (WebElement webElement: allTime) {if (webElement.getText (). equalsIgnoreCase (dateTime)){webElement.click ();}}}}
Outputnya akan seperti