Вопрос-ответ

How to select the auto suggestion from the dynamic dropdown using Selenium and Java

Как выбрать автоматическое предложение из динамического выпадающего списка с помощью Selenium и Java

Я пытаюсь выбрать значение для поля Subjects в следующей форме: https://demoqa.com/automation-practice-form

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

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

driver.findElement(By.id("subjectsInput")).sendKeys("English");
driver.findElement(By.id("subjectsInput")).click(); //This line doesnot click on the desired value.

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

Переведено автоматически
Ответ 1

Приведенный ниже код сработал для меня.

    WebDriver Driver = new ChromeDriver();
Driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
//Driver.manage().window().maximize();
String url = "https://demoqa.com/automation-practice-form";
Driver.get(url);
WebElement products=Driver.findElement(By.id("subjectsInput"));
products.sendKeys("English");
products.sendKeys(Keys.ARROW_DOWN);
products.sendKeys(Keys.ENTER);

Ответ 2

Чтобы вызвать единственное самовнушение английском языке, вам нужно вызвать WebDriverWait для elementToBeClickable() и вы можете использовать любую из следующих стратегий поиска:


  • cssSelector:


    driver.get("https://demoqa.com/automation-practice-form");
    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("input#subjectsInput"))).sendKeys("English");
    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("div.subjects-auto-complete__menu"))).click();


  • xpath:


    driver.get("https://demoqa.com/automation-practice-form");
    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//input[@id='subjectsInput']"))).sendKeys("English");
    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//div[contains(@class, 'subjects-auto-complete__menu')]"))).click();


  • Снимок браузера:



toolsqa_subject

java selenium