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

Я хочу подтвердить: 1) Если из города пусто, пользователь получает предупреждение и программа закрывается 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();
Вторая проблема в настоящее время 05/12/2019 заполняется, но не возвращается, в это поле ничего не входит.

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

1 Ответ

0 голосов
/ 12 мая 2019

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

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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...