Selenium Java-проверка текстового поля и проверка даты для пустых значений

Я хочу подтвердить: 1) Если from city не указано, пользователь получает предупреждение и программа завершает работу. 2)Дата отправления не пуста и не меньше даты возвращения

Это код:

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.Select;


public class e2e {

    public static WebDriver driver;


    public static void main(String[] args) {
        //Go to URL
        System.setProperty("webdriver.chrome.driver", "C:\\Users\\chromedriver_win32\\chromedriver.exe");
        driver= new ChromeDriver();
        driver.get("https://www.spicejet.com/");

        //Travel city pickers
        //Question1:If From city is blank generate warning
        driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
        driver.findElement(By.id("ctl00_mainContent_ddl_originStation1_CTXTaction")).click();
        WebElement fromCity=driver.findElement(By.xpath("//a[@value='ATQ']"));
        //driver.findElement(By.xpath("//a[@value='ATQ']")).click();
        driver.findElement(By.xpath("//a[@value='']")).click();
        String fromCt=fromCity.getText();
        if (fromCt.equals(" ")){
            System.out.println("You did not enter tarvelling from city");
            driver.quit();
        }

        else{
            driver.findElement(By.xpath("(//a[@value='DEL'])[2]")).click();}

        //Travel date pickers
        JavascriptExecutor jsLeave= (JavascriptExecutor)driver;
        jsLeave.executeScript("document.getElementById('ctl00_mainContent_view_date1').value='12-05-2019'");


        JavascriptExecutor jsReturn= (JavascriptExecutor)driver;
        jsReturn.executeScript("document.getElementById('ctl00_mainContent_view_date2').value='18-05-2019'");
    }
}

Проблемы: Когда я пытаюсь использовать эту строку, которая должна сделать город пустым, я не получаю предупреждения, но такого элемента нет: Невозможно найти сбой элемента.driver.findElement(By.xpath("//a[@value='']")).click();
Вторая проблема: в настоящее время 12.05.2019 заполняется, но не дата возврата, в это поле ничего не входит.

Я могу использовать некоторую помощь здесь, если у вас есть время. Заранее спасибо.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
359
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вот как вы можете проверить первый сценарий, и ваш второй сценарий никогда не произойдет, поскольку в поле даты возвращения будут отключены все даты до даты вашего отъезда.

driver.get("https://spicejet.com");
    driver.manage().window().maximize();

    driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
    // click on search
    driver.findElement(By.id("ctl00_mainContent_btn_FindFlights")).click();

    // check from city error message
    if (driver.findElement(By.id("ctl00_mainContent_ddl_originStation1_CTXT")).getText().equals("")) {
        if (driver.findElement(By.id("view-origin-station")).getText().equals("Select Departure City")) {
            System.out.println("Pass - Select Departure City message displayed as user did not enter from city.");
        }else {
            System.out.println("Fail - Select Departure City message not displayed when user not enter from city.");
        }
    }

    // enter from city
    driver.findElement(By.id("ctl00_mainContent_ddl_originStation1_CTXT")).click();
    driver.findElement(By.xpath("//a[contains(.,'ATQ')]")).click();
    // enter to city
    driver.findElement(By.id("ctl00_mainContent_ddl_destinationStation1_CTXT")).click();
    driver.findElement(By.xpath("//a[contains(.,'GOI')]")).click();

Другие вопросы по теме