Автозаполнение раздела селен - PullRequest
0 голосов
/ 21 марта 2019

У меня есть список, который имеет несколько ссылок в каждом разделе. Каждый раздел имеет разные ссылки. Мне нужно нажать на конкретную ссылку под каждым разделом. Я написал код ниже, но когда он выполняется, я не могу щелкнуть по второму разделу поля автозаполнения после щелчка по полю первого раздела автозаполнения. Вот мой код При использовании for-each я не могу выбрать второе поле автозаполнения. Пожалуйста, покажите мне, как мне выйти из этого.

public class Autocomplete {

public static WebDriver driver;

public static void main(String[] args) throws InterruptedException {

    ChromeOptions option = new ChromeOptions();

    option.addArguments("--disable-notifications");

    System.setProperty("webdriver.chrome.driver",".//src//browser//chromedriver.exe");

    driver = new ChromeDriver(option);

    driver.manage().window().maximize();

    System.out.println("Browser Launch chrome");

    driver.get("https://www.redbus.in/");

    driver.findElement(By.xpath("//*[@id=\"src\"]")).sendKeys("ta");

    AutocompleteRedbus.RebBus(By.xpath("//*[@id=\"src\"]"), "Tambaram, Chennai");

    Thread.sleep(5000);

    driver.findElement(By.xpath("//*[@id=\"dest\"]")).sendKeys("pon");

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

    AutocompleteRedbus.RebBus(By.xpath("//*[@id=\"dest\"]"), "Ponamaravathi");  
}

}

Вышеупомянутый код метода вызова AutocompleteRedbus здесь:

public class AutocompleteRedbus extends Autocomplete{


public static void RebBus(By xpath , String text) throws InterruptedException {

    List<WebElement> listOfLinks = driver.findElements(By.xpath("xpath"));
    listOfLinks.forEach(link -> {
        if (link.getText().equalsIgnoreCase("text")) {
            link.click();
            }
        });
    }
  }

1 Ответ

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

Когда вы пытаетесь выбрать значение из автозаполнения, используемый вами xpath неверен.Пожалуйста, измените xpath на тот, который я предоставляю, и он будет работать нормально.

AutocompleteRedbus.RebBus(By.xpath("//li[contains(@select-id,'results')]"), "Tambaram, Chennai");

И то же самое для метода назначения, например:

AutocompleteRedbus.RebBus(By.xpath("//li[contains(@select-id,'results')]"), "Ponamaravathi");
...