我正在寻找一种快速的方法来键入进入或返回键在硒。

不幸的是,我试图测试的表单(不是我自己的代码,所以我不能修改)没有Submit按钮。当手动使用它时,我只需输入Enter或Return。我怎么能做到这一点与硒类型命令,因为没有按钮点击?


当前回答

如果你是在这种情况下:

a)只是想按下键,但你没有一个特定的webElement来点击

b)您正在使用Selenium 2 (WebDriver)

那么解决方案是:

    Actions builder = new Actions(webDriverInstance);
    builder.sendKeys(Keys.RETURN).perform();

其他回答

你可以使用任意一个键。回车或Keys.RETURN。以下是细节:

用法:

Java: Using Keys.ENTER: import org.openqa.selenium.Keys; driver.findElement(By.id("element_id")).sendKeys(Keys.ENTER); Using Keys.RETURN: import org.openqa.selenium.Keys; driver.findElement(By.id("element_id")).sendKeys(Keys.RETURN); Python: Using Keys.ENTER: from selenium.webdriver.common.keys import Keys driver.find_element_by_id("element_id").send_keys(Keys.ENTER) Using Keys.RETURN: from selenium.webdriver.common.keys import Keys driver.find_element_by_id("element_id").send_keys(Keys.RETURN)

钥匙。回车键。返回两个都来自org.openqa.selenium。Keys,它扩展了java.lang。Enum<Keys>并实现java.lang.CharSequence。


Enum关键字

枚举键是非文本的可按键的表示形式。它们存储在Unicode PUA(私有使用区域)代码点0xE000-0xF8FF中。

关键代码:

它们的特殊按键代码如下:

RETURN = u'\ue006' ENTER = u'\ue007'

所有枚举键的实现都以相同的方式处理。

因此,在使用sendKeys(Keys.ENTER)时,没有功能或操作上的差异;或WebElement.sendKeys (Keys.RETURN);通过硒。


输入键和返回键

在计算机键盘上,大多数情况下,回车键(或Mac OS X上的回车键)会导致命令行、窗口形式或对话框操作其默认功能。这通常是为了完成一个“条目”并开始所需的流程,通常是按下OK按钮的另一种选择。

Return通常也被称为Enter,它们通常执行相同的功能;然而,在某些特定的应用程序(主要是页面布局)中,Return的操作特别像它起源于回车键的回车键。相比之下,在一般的PC键盘上,Enter通常以纯文本的形式标注其名称。


参考文献

回车键 回车

Actions action = new Actions(driver);
action.sendKeys(Keys.RETURN);
search = browser.find_element_by_xpath("//*[@type='text']")
search.send_keys(u'\ue007')

“进来”

参考Selenium的文档“Special Keys”。

当您不想搜索任何定位器时,您可以使用Robot类。例如,

Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);

您可以在输入文本的元素对象上调用submit()。

或者,你也可以将Enter键发送给它,如下面的Python代码片段所示:

from selenium.webdriver.common.keys import Keys
element.send_keys(Keys.ENTER) # 'element' is the WebElement object corresponding to the input field on the page