如何在Selenium WebDriver中按下向下箭头键,然后再按“Enter”按钮?

21

我正在使用 Selenium Java。我需要输入值到文本框中,并按下箭头选择建议,然后按回车键。

因此,我的问题是如何按下 "向下箭头" 键,然后紧接着按 "Enter" 键?


https://dev59.com/-HI-5IYBdhLWcg3w48tO - Kishan Patel
你能贴出你尝试过的任何代码吗? - Aminah Nuraini
6个回答

41

您可以导入Keys并使用它们。

import org.openqa.selenium.Keys

WebElement.sendKeys(Keys.DOWN);
WebElement.sendKeys(Keys.RETURN);

编辑

你可能只需要使用一个sendKeys()方法:

WebElement.sendKeys(Keys.DOWN, Keys.RETURN);

对我来说,只有使用Keys.ARROW_DOWN而不是Keys.DOWN才有效。 - Eduardo Lima

2
对于 Ruby,这将是:
input_element = @driver.find_element(:id,'input_id')
input_element.send_keys(:arrow_down)

特殊字符键列表可以在这里找到。


0

我已经尝试过这个方法,它对我有效。

WebElement dp_down = driver.findElement(By.xpath("enter-your-element-xpath-here");
dp_down.sendKeys(Keys.ARROW_DOWN, Keys.RETURN);

这对我来说运行得很好,没有任何问题。 干杯!!!


0
driver.findelement(By.(locator(locator details)).sendKeys(Keys.ARROW-DOWN,Keys.RETURN)

请阅读[答案]并[编辑]您的答案,以包含有关此代码实际解决问题的说明。请记住,您不仅要解决问题,还要教育OP和任何未来读者。 - Adriaan

0
using Keys = OpenQA.Selenium.Keys;

//moves down arrow key from keyboard to the list of dropdown
IWebElement.SendKeys(Keys.Down);
//Hits Enter on the selected list from the dropdown
IWebElement.SendKeys(Keys.Return);

这将会起作用。


请阅读[答案]并[编辑]您的答案,以包含有关此代码实际解决问题的说明。请记住,您不仅要解决问题,还要教育OP和任何未来读者。 - Adriaan

-1

你甚至可以在一条语句中连接Down和Enter。

import org.openqa.selenium.Keys
WebElement.sendKeys(Keys.DOWN + Keys.ENTER);

OP 要求顺序执行,而不是同时按下。 - Clay H

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接