【问题标题】:Selenium handle dropdown suggestions as i send text input?Selenium 在我发送文本输入时处理下拉建议?
【发布时间】:2020-10-01 21:17:23
【问题描述】:

考虑一下这个简单的 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) 它不起作用。我也试过,点击页面上的任何地方,也没有帮助。

我还能做什么?

【问题讨论】:

  • 也许尝试发送键输入。还有它是什么网站。
  • 我已经试过input.sendKeys(Down, Return) 不能分享网站。它的内部。
  • 下拉是如何实现的?尝试使用 input.click() 点击。
  • 听起来这是浏览器自己的控件。 (自动建议)这不是 DOM 的一部分,因此 Selenium 无权访问它。 (其他网站也没有,这是一件好事。这使“沙箱”保持完整。)发送密钥可能有效......不确定......似乎他们会阻止,但你可以尝试 input.sendKeys(Keys .ARROW_DOWN) 和 input.sendKeys(Keys.ENTER) 如果网站实现了自己的自动提示,它将在 DOM 中。

标签: java selenium xpath


【解决方案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);

【讨论】:

    猜你喜欢
    • 2016-12-15
    • 2021-07-10
    • 2018-09-09
    • 1970-01-01
    • 1970-01-01
    • 2021-07-03
    • 2015-09-23
    • 1970-01-01
    • 2021-05-05
    相关资源
    最近更新 更多