我'm looking for a quick way to type and Enter or Return key in Selenium. Unfortunately the form I'm试图测试(不是我自己的代码,所以我可以't modify) doesn' t有一个提交按钮 . 当手动使用它时,我只需输入ENTER或RETURN . 我需要知道如何使用Selenium type 命令,因为它有没有按钮可点击 .
26 回答
252
你这样做:
final private WebElement input = driver.findElement(By.id("myId"));
input.clear();
input.sendKeys(value); // the value we want to set to input
input.sendKeys(Keys.RETURN);
26 回答
你这样做:
import
语句适用于Java,对于其他语言,它可能是不同的,例如python:from selenium.webdriver.common.keys import Keys
JAVA
要么,
PYTHON
要么,
要么,
RUBY
要么,
要么,
C#
要么,
现在已经发布了Selenium 2,发送一个Enter键要容易一些,因为你可以使用
selenium.webdriver.remote.webelement.WebElement
类的send_keys
方法(这个示例代码在Python中,但Java中存在相同的方法):编写HTML测试时,ENTER键可用作
${KEY_ENTER}
.您可以将它与
sendKeys
一起使用,这是一个示例:您可以使用 Keys.ENTER 或 Keys.RETURN 中的任何一个 . 以下是一些细节:
用法:
Java:
使用
Keys.ENTER
:Keys.RETURN
Python:
使用
Keys.ENTER
:Keys.RETURN
Keys.ENTER 和 Keys.RETURN 都来自 org.openqa.selenium.Keys ,它扩展 java.lang.Enum<Keys> 并实现 java.lang.CharSequence
枚举键
Enum Keys 是非文字的可按键的表示 . 它们存储在Unicode PUA(Private Use Area)代码点0xE000-0xF8FF中 .
密码:
它们的特殊 keys codes 如下:
RETURN = u'\ue006'
ENTER = u'\ue007'
所有 Enum Keys 的实现都以相同的方式处理 .
因此,在使用 sendKeys(Keys.ENTER); 或 WebElement.sendKeys(Keys.RETURN); 至 Selenium 时,这些区别是 No Functional 或 Operational .
输入密钥和返回密钥
在计算机键盘上,在大多数情况下,Enter(或Mac OSX上的Return)会导致命令行,窗口窗体或对话框运行其默认功能 . 这通常是为了完成"entry"并开始所需的过程,通常是按下OK按钮的替代方法 .
Return通常也称为Enter,它们通常执行相同的功能;但是在某些特定的应用程序(主要是页面布局)中,Return的运行方式与它所源自的 Carriage Return 键类似 . 相比之下,Enter通常在通用PC键盘上以纯文本标记其名称 .
参考文献
Enter Key
Carriage Return
对于那些使用WebDriverJS的人来说,
Keys.RETURN
将被引用为作为参考的更完整的示例也可能有用:
driver.findElement(By.id("Value")).sendKeys(Keys.RETURN);
或driver.findElement(By.id("Value")).sendKeys(Keys.ENTER);
我只是想注意,我需要这个用于我的Cucumber测试,并发现如果你想模拟按下回车键/返回键,你需要发送
:return
值而不是:enter
值(参见描述的值here)对于Selenium RC与Java:
对于带有java的Selenium WebDriver(a.k.a.Selenium2):
要么,
使用Actions类在WebDriver中按Enter键的另一种方法:
ENTER = u'\ ue007'
参考selenium文档'特殊键'
如果你正在寻找“如何在selenium webdriver(java)中按键盘输入键”,那么下面的代码肯定会对你有所帮助 .
有以下按键的方法 - C#:
要么
要么
在WebDriver的情况下,也可以使用Action接口实现 -
尝试使用XPATH搜索元素,然后,以下代码工作:
对于RUBY: -
你可以试试 :
我不得不在文本中间发送回车键 . 所以我通过以下文本发送键功能来实现
1\n2\n3
对于使用xpath的Selenium WebDriver(如果键可见):
要么,
如果您处于这种特定情况:
a)想要按键,但没有特定的webElement可以点击
b)您使用的是Selenium 2(webDriver)
然后解决方案是:
JAVA/JavaScript:
你也许可以这样做, non-natively :
有用
当您不想搜索任何定位器时,您可以使用Robot类:例如:
要使用selenium输入密钥首先需要导入以下库:
然后将此代码添加到要输入密钥的位置
您可以根据需要使用列表中的任何键替换RETURN