我正在使用Selenium Server(v2.21)和Selenium Java Client(v.2.21.0)来自动化每个条目后需要按下 Enter 键的Web表单,因为字段根据输入的值公开。所以基于解决方案here,我一直在尝试不同的方式在表单中输入字符串并按 Enter - 这是我尝试过的那些:
// type field value
selenium.type("program", "MIC HOMEOWNERS");
// ** not working: selenium.keyPress("program", "\\13");
// ** not working: selenium.select("program", "Program");
// ** not working: selenium.keyPressNative(Keys.ENTER.toString());
// ** not working: selenium.keyDown("program", "13");
它似乎似乎这是最合乎逻辑的解决方案(selenium.keyPressNative(Keys.ENTER)
),但如果你不添加.toString
,编译器会抛出错误,因为{{ 1}}期待一个字符串。
实际的表单代码:
keyPressNative
如何模拟按 Enter 键?
答案 0 :(得分:7)
我使用以下代码点击 Escape 或 Enter 。
try {
Thread.sleep(700);
} catch (InterruptedException e) {
selenium.keyPressNative("27"); // Escape
selenium.keyPressNative("10"); // Enter
}
我们需要暂停selenium直到上一个命令成功执行。所以我使用sleep()方法。对于我的测试用例,我需要暂停700 MillSec。根据您的要求,您需要更改值。
答案 1 :(得分:6)
在WebDriver中有一个类键。使用这个我们可以发送ENTER键。 喜欢这个
driver.findElement(By.id("elementid")).sendKeys(Keys.ENTER);
对于Selenium RC:
selenium.keyPress("elementid", "\\13"); // Note the double backslash
答案 2 :(得分:1)
你试过这个吗?
selenium.keyPressNative("\n");
答案 3 :(得分:1)
试试这个。我正在测试的应用程序要求用户执行以下步骤以将值输入表格单元格。 (单击单元格,按回车键,输入一个数字,再次按回车键完成)它适用于我的脚本
selenium.click("id_locator");
this.command_waitInSeconds(1);
selenium.keyPress("id_locator", "\\13");
this.command_waitInSeconds(3);
selenium.type("name=value", "10000");
selenium.focus("name=value");
selenium.keyPress("name=value", "\\13");
答案 4 :(得分:1)
如果您将selenese编写为HTML(或使用IDE),则可以在变量${KEY_ENTER}
这是sendKeys的一个例子:
sendKeys | id=search | ${KEY_ENTER}
您可以在此处查看所有可用密钥的列表:http://blog.reallysimplethoughts.com/2013/09/25/using-special-keys-in-selenium-ide-part-2/
答案 5 :(得分:0)
$driver.find_element(:id, "program").send_keys [:return]
答案 6 :(得分:0)
尝试使用XPATH搜索Element,然后使用以下代码。它对我有用。
driver.findElement(By.xpath(".//*[@id='txtFilterContentUnit']")).sendKeys(Keys.ENTER);
答案 7 :(得分:0)
td