Как выбрать автоматическое предложение из раскрывающегося списка Dynami c с использованием Selenium и Java - PullRequest
2 голосов
/ 07 августа 2020

Я пытаюсь выбрать значение для поля 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.

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

Ответы [ 2 ]

1 голос
/ 09 августа 2020

Код ниже работал у меня.

    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);
    
1 голос
/ 07 августа 2020

Для вызова щелкните единственное автоматическое предложение Engli sh, вам нужно вызвать 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

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