Невозможно ввести текст в раскрывающемся списке - PullRequest
0 голосов
/ 30 апреля 2020

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

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;

public class testcase2 {

    public static void main(String[] args) throws InterruptedException {
        // TODO Auto-generated method stub
        System.setProperty("webdriver.chrome.driver", "//Users//suva//Downloads//chromedriver");
        WebDriver driver = new ChromeDriver();
        driver.get("https://www.makemytrip.com/");
        WebElement source = driver.findElement(By.id("fromCity"));
        source.click();
        System.out.println(source.isEnabled());
        Thread.sleep(2000);
        source.sendKeys("BLR");
        //source.sendKeys(Keys.ARROW_DOWN);
    }
}

Ответы [ 2 ]

0 голосов
/ 30 апреля 2020

После того, как вы щелкнете на выбранном по умолчанию элементе «из», появится раскрывающийся список с другим вводом для ввода.

Попробуйте так:

driver.get("https://www.makemytrip.com/");

WebElement triggerFromDropdown = driver.findElement(By.id("fromCity"));
triggerFromDropdown.click();

WebElement fromInput = driver.findElement(By.css(".autoSuggestPlugin input[placeholder='From']"));
fromInput.sendkeys('Dubai');
0 голосов
/ 30 апреля 2020

Может быть много причин, почему это не работает. Было бы полезно, если бы вы могли также предоставить элемент DOM.

Однако решение было бы ввести текст через JavaScript Executor. Код будет выглядеть примерно так: -

WebElement webelement = driver.FindElement(By.id("fromCity"));
                JavaScriptExecutor executor = (JavaScriptExecutor)driver;
                executor.ExecuteScript("arguments[0].value='" + "BLR" + "';", webelement);

Для лучшей аутентичности приведенного выше кода мне нужен DOM. Это должно работать, хотя.

...