Перейдите в место, где открыты календарь и часы, а затем выполните итерацию в соответствии с необходимой датой и временем.
Надеюсь, приведенный ниже код сработает для вас.
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;
открытый класс DatePicker {
@Test
public void testDAtePicker() throws Exception{
//DAte and Time to be set in textbox
String dateTime ="12/07/2014 2:00 PM";
WebDriver driver = new FirefoxDriver();
driver.manage().window().maximize();
driver.get("http://demos.telerik.com/kendo-ui/datetimepicker/index");
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
//button to open calendar
WebElement selectDate = driver.findElement(By.xpath("//span[@aria-controls='datetimepicker_dateview']"));
selectDate.click();
//button to move next in calendar
WebElement nextLink = driver.findElement(By.xpath("//div[@id='datetimepicker_dateview']//div[@class='k-header']//a[contains(@class,'k-nav-next')]"));
//button to click in center of calendar header
WebElement midLink = driver.findElement(By.xpath("//div[@id='datetimepicker_dateview']//div[@class='k-header']//a[contains(@class,'k-nav-fast')]"));
//button to move previous month in calendar
WebElement previousLink = driver.findElement(By.xpath("//div[@id='datetimepicker_dateview']//div[@class='k-header']//a[contains(@class,'k-nav-prev')]"));
//Split the date time to get only the date part
String date_dd_MM_yyyy[] = (dateTime.split(" ")[0]).split("/");
//get the year difference between current year and year to set in calander
int yearDiff = Integer.parseInt(date_dd_MM_yyyy[2])- Calendar.getInstance().get(Calendar.YEAR);
midLink.click();
if(yearDiff!=0){
//if you have to move next year
if(yearDiff>0){
for(int i=0;i< yearDiff;i++){
System.out.println("Year Diff->"+i);
nextLink.click();
}
}
//if you have to move previous year
else if(yearDiff<0){
for(int i=0;i< (yearDiff*(-1));i++){
System.out.println("Year Diff->"+i);
previousLink.click();
}
}
}
Thread.sleep(1000);
//Get all months from calendar to select correct one
List list_AllMonthToBook = driver.findElements(By.xpath("//div[@id='datetimepicker_dateview']//table//tbody//td[not(contains(@class,'k-other-month'))]"));
list_AllMonthToBook.get(Integer.parseInt(date_dd_MM_yyyy[1])-1).click();
Thread.sleep(1000);
//get all dates from calendar to select correct one
List list_AllDateToBook = driver.findElements(By.xpath("//div[@id='datetimepicker_dateview']//table//tbody//td[not(contains(@class,'k-other-month'))]"));
list_AllDateToBook.get(Integer.parseInt(date_dd_MM_yyyy[0])-1).click();
///FOR TIME
WebElement selectTime = driver.findElement(By.xpath("//span[@aria-controls='datetimepicker_timeview']"));
//click time picker button
selectTime.click();
//get list of times
List allTime = driver.findElements(By.xpath("//div[@data-role='popup'][contains(@style,'display: block')]//ul//li[@role='option']"));
dateTime = dateTime.split(" ")[1]+" "+dateTime.split(" ")[2];
//select correct time
for (WebElement webElement : allTime) {
if(webElement.getText().equalsIgnoreCase(dateTime))
{
webElement.click();
}
}
}
}
Для получения более подробной информации вы можете перейти по ссылке ниже.
https://www.guru99.com/handling-date-time-picker-using-selenium.html
В первую очередь, не предполагайте, что 1 их будет равняться 10 пикселям. Они единица находятся в прямой корреляции к используемой типографии. Если у кого-то есть размер шрифта 16 пикселей, то 62,5% - действительно 10 пикселей (16 * 0.625 = 10), но это, очевидно, изменится, когда кто-то изменил их размер стандартного шрифта.
Во-вторых, это является первым, я когда-либо слышал об использовании 62,5% для основного тела font-size
. Я всегда использую a font-size
из 76% как на основе Нормальной Типографии CSS Owen Briggs.
Наконец, для ответа на вопрос да Вы могли использовать размер шрифта 6,25% и затем использовать 12em
вместо 1.2em
, например. Однако я высоко препятствовал бы этой методологии. В мире typograhy, один их предназначается, чтобы быть шириной прописной буквы 'M'. Этот метод полностью нарушает ту обычную практику и серьезно смутит любого, который может поддержать Ваш CSS в будущем.
Возможно, но затем Вы теряете контроль над своим масштабом. Не забывайте, что заголовки обычно наследуют те те же размеры в пропорции к их разряду (т.е. <h1>
будет самым большим, <h2>
немного меньший). Если Вы захотите уменьшить те элементы, то необходимо будет использовать их значения с большим количеством десятичных заполнителей. Вообразить <h4> font-size: 0.005em
.
Или хуже, если Вы хотите, чтобы шрифты масштабировались больше, Вы могли бы потенциально смотреть на font-size: 40em
или что-то смешное.
Короче говоря, 1em = 10 пкс намного более практично для масштабированных значений шрифтов. В то время как 1:1 масштаб мог бы иметь смысл на бумаге, это не предоставляет себя что хорошо к разумному и удобному в сопровождении CSS.
Преобразование может быть более простым, но они не означали бы то, что оно, как предполагается, означает.
1em, как предполагается, равен ширине если капитализированный "M" в данном шрифте. Если ширина буквы M составляет 1 пиксель, Ваш шрифт будет нечитабельным.
Вся вещь "62,5% = 10 пикселей" в любом случае фундаментально нарушена - 62,5% могут или не могут быть 10 пикселей в зависимости от браузера, пользователя настройки, и, особенно, настройку минимального размера шрифта. Таким образом, вы не можете просто проектировать в пикселях, а затем «конвертировать» в em, исходя из предположения, что 62,5% = 10 пикселей, потому что ваш дизайн будет постоянно ломаться. Если вам нужен идеальный дизайн, вы должны использовать пиксели как единицу измерения. Если вам нужен гибкий дизайн, вам нужно подумать о соответствующих единицах измерения для различных элементов веб-сайта: em для элементов, которые должны масштабироваться в соответствии с размером текста, проценты для элементов, которые должны масштабироваться относительно размера окна, и пиксели для элементов ( как изображения), которые вообще не должны масштабироваться.
Любой, кто включает font-size: 62.
Вы можете найти это полезно. http://pixel2em.kleptomac.com Это предоставляет онлайн-пиксель в EM Converter, и вы также можете выполнить полное преобразование файлов CSS.
Обновленная версия доступна на http://pixelconverter.kleptomac.com Это онлайн-конвертер единиц измерения для преобразования пикселей, точек, em, проценты. Это поддерживает преобразование из / в любые из этих единиц.