Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Selenium在发送文本输入时处理下拉建议?_Java_Selenium_Xpath - Fatal编程技术网

Java Selenium在发送文本输入时处理下拉建议?

Java Selenium在发送文本输入时处理下拉建议?,java,selenium,xpath,Java,Selenium,Xpath,考虑一下这个简单的html <div role="label"> <label>Names</label> </div> <div role="input"> <input type="names"> </div> 这会发送正确的名称,但是当名称发送到输入框时,会显示一个下拉列表,显示名称。如何处理下拉列表? 我尝试了input.sendKeys(向下

考虑一下这个简单的html

<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);