Как выбрать предложенное значение из выпадающего списка - PullRequest
0 голосов
/ 11 апреля 2019

На сайте Virgintrains.co.uk пытается выбрать прибывающую железнодорожную станцию ​​

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

Проблема, с которой я столкнулся, - отправка имени места прибытия, но он не фиксирует его и переходит к следующему полю.

Я попытался использовать клавишу табуляции, чтобы перейти к следующему полю, я попытался выбрать по видимому тесту,

`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.openqa.selenium.support.ui.Select;

public class VirginTrains {

    @SuppressWarnings("null")
    public static void main(String[] args) throws InterruptedException {

        String projectPath = System.getProperty("user.dir");
        System.out.println("projectPath : " + projectPath);

        //Opens virgintrains webpage
        System.setProperty("webdriver.chrome.driver", projectPath + "\\drivers\\chromedriver\\chromedriver.exe");
        WebDriver driver = new ChromeDriver();
        driver.get("https://www.virgintrains.co.uk/");

        //The following maximise the screen size
        driver.manage().window().maximize();

        //The following selects the Departure train station
        WebElement textBoxDep = driver.findElement(By.name("origin_station"));
        textBoxDep.sendKeys("London Euston");

        //ADD WAIT STATMENT
                //Thread.sleep(10000);

THIS SECTION BELOW IS WHERE I AM HAVING THE ISSUE

        // Following selects the Arrival train station
        WebElement textBoxArr = driver.findElement(By.name("destination_station")); 
        textBoxArr.sendKeys("   Manchester Piccadilly");
       // WebElement option = null;
        //option.click();

      //ADD WAIT STATMENT
            Thread.sleep(10000);

        WebElement webElement = null;
        webElement.sendKeys(Keys.TAB);

        WebElement webElement2 = null;
        webElement2.sendKeys(Keys.TAB);`

Я ожидаю, что код выберет нужную железнодорожную станцию, а затем переместится в поле даты.

Фактический результат заключается в том, что он заполняет поле, но не выбирает станцию ​​и переходит к следующему полю.

1 Ответ

1 голос
/ 11 апреля 2019

Вы пытаетесь отправить нажатие на вкладку нулевым элементам. Вместо разделения местоположения и нажатия клавиши табуляции поместите их в одну строку:

textBoxDep.sendKeys("London Euston" + Keys.TAB);

textBoxArr.sendKeys("Manchester Piccadilly" + Keys.TAB + Keys.TAB);

Кроме того, Thread.sleep не предлагается. Вы можете использовать ожидание определенного условия, прежде чем продолжить. Более подробная информация о ожиданиях здесь: https://www.toolsqa.com/selenium-webdriver/wait-commands/

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