Невозможно найти любую дату из календаря дат возвращения на веб-сайте Make My Trip через селен и Java - PullRequest
0 голосов
/ 02 марта 2019

Здесь я пытаюсь выбрать дату возвращения 12 апреля месяца.я пробовал с различными настроенными xpath и css, но не смог найти элемент:

    import java.util.List;
    import java.util.concurrent.TimeUnit;

    import org.openqa.selenium.By;
    import org.openqa.selenium.JavascriptExecutor;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.WebElement;
    import org.openqa.selenium.chrome.ChromeDriver;
    import org.openqa.selenium.support.ui.ExpectedConditions;
    import org.openqa.selenium.support.ui.WebDriverWait;

public class Make_my_trip {

    public static void main(String[] args) throws InterruptedException {
        System.setProperty("webdriver.chrome.driver", "F:\\Selenium\\chromedriver.exe");
        WebDriver driver = new ChromeDriver();
        driver.manage().window().maximize();
        driver.get("https://www.makemytrip.com/");

        // Selecting Return date
        driver.findElement(By.id("hp-widget__return")).click();
        //WebDriverWait ws = new WebDriverWait(driver, 10);
        //ws.until(ExpectedConditions.presenceOfElementLocated(By.id("dp1551508380301")));
        Thread.sleep(2000);;
        while (!driver.findElement(By.xpath("//span[@class ='ui-datepicker-month']")).getText().contains("April")) {

            System.out.println("Return date selected ");
            driver.findElement(By.xpath(
                    "div[@id='dp1551508898872']//span[@class='ui-icon ui-icon-circle-triangle-e'][contains(text(),'Next')"))
                    .click();
        }

        List<WebElement> returndate = driver.findElements(By.xpath("//a[@class ='ui-state-default']"));
        int count = returndate.size();

        for (int j = 0; j < count; j++) {
            String returndatetext = driver.findElements(By.xpath("//a[@class ='ui-state-default']")).get(i).getText();
            if (returndatetext.equalsIgnoreCase("12")) {
                driver.findElements(By.xpath("//a[@class ='ui-state-default']")).get(i).click();
                break;
            }
        }

    }

PS:

  1. Если мы используем явно ждать получения " org.openqa.selenium.InvalidSelectorException"Ошибка, поэтому на данный момент используйте Thread.sleep(1000).
  2. Если мы используем Xpath //div[@class='ui-datepicker-group ui-datepicker-group-last']/div/a/span[contains(text(),'Next' )][1], получая org.openqa.selenium.ElementNotVisibleException: элемент не виден

1 Ответ

0 голосов
/ 02 марта 2019

«Элемент не виден».У меня тоже была эта ошибка.Это означает, что ваш элемент поиска не отображается в текущем снимке.Вы должны сосредоточиться на этом элементе или прокрутить вниз, пока элемент не появится в снимке

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