Selenium обрабатывает выпадающие предложения при отправке ввода текста?

#java #selenium #xpath

#java #селен #xpath

Вопрос:

рассмотрим этот простой html.

 <div role="label">
<label>Names</label>
</div>
<div role="input">
<input type="names">
</div>
  

У меня есть такой код

 WebElement input= "inputXpathString";
input.sendKeys("Sam Winchester") 
  

Это отправляет правильное имя, однако, когда имя отправляется в поле ввода, отображается выпадающий список с указанием имени. Как мне обработать выпадающий список?
Я пробовал input.sendKeys(Down, Return) , это не работает. Я также пробовал, щелкая в любом месте страницы, это тоже не помогает.

Что еще я могу сделать?

Комментарии:

1. Может быть, попробуйте отправить ключи enter. Также какой это сайт.

2. Я уже пробовал input.sendKeys(Down, Return) , не могу поделиться сайтом. его внутреннее.

3. Как реализован выпадающий список? Попробуйте щелкнуть с помощью input.click().

4. похоже, это собственный элемент управления браузером. (автоматическое предложение) Это не является частью DOM, поэтому у Selenium нет к нему доступа. (Как и другие веб-сайты, и это хорошо. Это сохраняет «песочницу» нетронутой.) Ключи отправки могут работать … не совсем уверен … кажется, что-то, что они предотвратили бы, но вы могли бы попробовать input.SendKeys(ключи. ARROW_DOWN) и input.SendKeys(ключи. ВВЕДИТЕ) Если веб-сайт реализует собственное автоматическое предложение, это будет в DOM.

Ответ №1:

Пожалуйста, попробуйте использовать приведенный ниже код, используя интерфейс JavascriptExecutor:

 WebElement input = driver.findElement(By.xpath(""));
//casting a driver instance into JavascriptExecutor instance
JavascriptExecutor js = (JavascriptExecutor) driver;
//set the dropdown value to 'Sam Winchester' using javascript
js.executeScript("arguments[0].value='Sam Winchester'", input);