Java Selenium在发送文本输入时处理下拉建议?
考虑一下这个简单的htmlJava Selenium在发送文本输入时处理下拉建议?,java,selenium,xpath,Java,Selenium,Xpath,考虑一下这个简单的html <div role="label"> <label>Names</label> </div> <div role="input"> <input type="names"> </div> 这会发送正确的名称,但是当名称发送到输入框时,会显示一个下拉列表,显示名称。如何处理下拉列表? 我尝试了input.sendKeys(向下
<div role="label">
<label>Names</label>
</div>
<div role="input">
<input type="names">
</div>
这会发送正确的名称,但是当名称发送到输入框时,会显示一个下拉列表,显示名称。如何处理下拉列表?
我尝试了input.sendKeys(向下,返回)
它不起作用。我也尝试过,点击页面上的任何地方,这也没有帮助
我还能做什么?请使用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);
也许可以尝试发送键进入。还有它是什么网站。我已经尝试了
input。sendKeys(向下,返回)
无法共享该网站。它的内部。下拉菜单是如何实现的?尝试使用输入单击。单击()。听起来这是浏览器自己的控件。(自动建议)这不是DOM的一部分,因此Selenium无权访问它。(其他网站也一样,这是一件好事。这样可以保持“沙盒”完好无损。)发送密钥可能有效。。。不太确定。。。似乎是他们会阻止的事情,但是你可以尝试input.sendKeys(key.ARROW_DOWN)和input.sendKeys(key.ENTER)如果网站实现了自己的自动建议,它将在DOM中。
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);