Как выбрать конкретную дату с помощью средства выбора даты в Selenium WebDriver - PullRequest
0 голосов
/ 18 октября 2018

Я работаю над Selenium WebDriver и использую Java.Я хочу выбрать диапазон дат из окна выбора даты, показанного на экране ниже.

В настоящее время я могу выбрать средство выбора даты и изменить выбор месяца, но не могу выбрать значения даты (т. Е. - 12/10/2018)

Выбор средства выбора даты

X

Вот код Java, который я написал:

    driver.findElement(By.linkText("Leave")).click();
    driver.findElement(By.linkText("Apply Leave")).click();
    Thread.sleep(2000);
    driver.findElement(By.id("LeaveStartDate")).click();
    driver.findElement(By.className("next")).click();
    driver.findElement(By.className("day")).sendKeys("12");
    driver.findElement(By.id("LeaveEndtDate")).click();
    driver.findElement(By.className("next")).click();
    driver.findElement(By.className("day")).sendKeys("12/11/2018");

}
}

Ответы [ 5 ]

0 голосов
/ 27 января 2019

вы можете попробовать эту утилиту ...

public void selectDate(String date){  //Here any date you can give 
    WebElement eval=driver.findElement(By.xpath("//div[contains(@class,'datepicker-days')]/table/tbody"));
    List<WebElement> alldates = eval.findElements(By.tagName("td"));
    for(WebElement cell:alldates){
         String day=cell.getText();
            if (cell.getText().contains(date)) {           
                 driver.findElement(By.xpath("//div[contains(@class,'datepicker-days')]/table/tbody/tr/td[text()='"+day+"']")).click();
                 break;
                }
            }
    }

Примечание: Если вы хотите выбрать дату из другого месяца, просто перейдите к этому месяцу, и после этого вы можете использовать эту утилиту.

0 голосов
/ 27 октября 2018
import java.util.List;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.AfterTest;
import org.testng.annotations.Test;

public class dateTimePicker {

    WebDriver driver;

    @Test
    public void dateTimePicker() {

        System.setProperty("webdriver.chrome.driver",
                "C://Chrome driver exe path");
        driver = new ChromeDriver();

        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

        driver.get("http://jqueryui.com/resources/demos/datepicker/other-months.html");

        // click to open the date time picker calendar.
        WebElement dateBox = driver.findElement(By.id("datepicker"));

        // click to open the date time picker calendar.
        dateBox.click();

        // Fill date as mm/dd/yyyy as 10/6/2019
        dateBox.sendKeys("10/6/2019");

        // Press tab to shift focus to time field
        dateBox.sendKeys(Keys.TAB);

        // close the driver
        driver.close();
    }
}
0 голосов
/ 19 октября 2018

, чтобы выбрать дату после изменения месяца. Вы можете создать список и сохранить всю дату в списке.Затем получите текст по одному с помощью «.getText ()» и попробуйте сравнить дату результата с ожидаемой датой и щелкните по ней.Таким образом, вы можете параметризовать ваш скрипт со значением даты.

0 голосов
/ 24 октября 2018

Спасибо, ребята, что ответили на мой запрос ... Я пробовал с Xpath и его работами для меня

Вот подробности:

С кодом ниже явыберите дату начала и окончания в «Выбор даты»

driver.findElement(By.id("LeaveStartDate")).click();
    driver.findElement(By.className("next")).click();

    driver.findElement(By.xpath("html/body/div[8]/div[1]/table/tbody/tr[3]/td[2]")).click();
    driver.findElement(By.id("LeaveSEndDate")).click();
    driver.findElement(By.xpath("html/body/div[9]/div[1]/table/tbody/tr[3]/td[5]")).click();

Вывод: Xpath - это решение для тех, кто не может выполнить свой Java-код селенаиз «Сборщик дат Jquery» .

0 голосов
/ 18 октября 2018

Вам нужно найти поле с надписью «Дата начала» и sendKeys для этого элемента, а не для самого средства выбора даты.

driver.findElement(By.id("LeaveStartDate")).sendKeys("12/10/2018");

Затем сделайте то же самое для даты окончания.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...