3

我正在使用 Selenium Server (v2.21) 和 Selenium Java Client (v.2.21.0) 来自动化需要Enter在每次输入后按下键的 Web 表单,因为字段是根据输入的值公开的。因此,根据此处的解决方案,我一直在尝试不同的方法将字符串输入表单并按下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).toStringkeyPressNative

实际表单代码:

<label  >Program</label> 
    <input id="program" name="program1" class="readonly-bg" readonly="readonly" type="text" value="MIC HOMEOWNERS" size="12"/>
    <input id="program" name="program" type="hidden" value="601"/>
        <script type="text/javascript">  
            Spring.addDecoration(new Spring.ElementDecoration({  
                elementId : "program",  
                widgetType : "dijit.form.ValidationTextBox",  
                widgetAttrs : { 
                    trim:true ,
                    required : true
                }}));  
        </script>
<br>

如何模拟Enter按键?

4

8 回答 8

7

我正在使用以下代码单击Escape Enter

try {
    Thread.sleep(700);
} catch (InterruptedException e) {
    selenium.keyPressNative("27"); // Escape
    selenium.keyPressNative("10"); // Enter 
}   

我们需要暂停 selenium,直到上一个命令成功执行。所以我正在使用 sleep() 方法。对于我的测试用例,我需要暂停 700 MillSec。根据您的要求,您需要更改该值。

于 2012-05-29T13:54:59.810 回答
6

在 WebDriver 中有一个类键。使用它我们可以发送 ENTER 键。像这样

driver.findElement(By.id("elementid")).sendKeys(Keys.ENTER);

对于 Selenium RC:

selenium.keyPress("elementid", "\\13"); // Note the double backslash
于 2012-07-18T11:25:06.563 回答
1

你试过这个吗?

selenium.keyPressNative("\n");
于 2012-05-29T13:14:40.237 回答
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");
于 2013-03-12T16:24:03.680 回答
1

如果您将 selenese 编写为 HTML(或使用 IDE),则 ENTER 键在变量中可用${KEY_ENTER}

以下是 sendKeys 的示例:

sendKeys | id=search | ${KEY_ENTER}

您可以在此处查看所有可用密钥的列表:http: //blog.reallysimplethoughts.com/2013/09/25/using-special-keys-in-selenium-ide-part-2/

于 2014-01-27T19:30:22.100 回答
0

尝试使用 XPATH 搜索元素,然后使用以下代码。它对我有用。

 driver.findElement(By.xpath(".//*[@id='txtFilterContentUnit']")).sendKeys(Keys.ENTER);
于 2013-11-27T11:28:23.667 回答
0
webElem=driver.findElement(By.xpath(""));
webElem.sendKeys(Keys.TAB);
webElem.sendKeys(Keys.ENTER);
于 2018-02-05T09:25:49.403 回答
-2

你试过这个吗?(这是红宝石)

$driver.find_element(:id, "program").send_keys [:return]
于 2012-05-29T14:52:51.350 回答