use*_*861 3 java selenium selenium-webdriver
我使用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");
Run Code Online (Sandbox Code Playgroud)
它会看起来像这是最合理的解决方案(selenium.keyPressNative(Keys.ENTER)),但是编译器抛出,如果你不添加一个错误.toString,因为keyPressNative期待一个字符串.
实际的表单代码:
<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>
Run Code Online (Sandbox Code Playgroud)
我如何模仿按键的Enter按键?
我使用以下代码单击Escape 或 Enter.
try {
Thread.sleep(700);
} catch (InterruptedException e) {
selenium.keyPressNative("27"); // Escape
selenium.keyPressNative("10"); // Enter
}
Run Code Online (Sandbox Code Playgroud)
我们需要暂停selenium直到上一个命令成功执行.所以我使用sleep()方法.对于我的测试用例,我需要暂停700 MillSec.根据您的要求,您需要更改值.
小智 6
在WebDriver中有一个类键.使用这个我们可以发送ENTER键.像这样
driver.findElement(By.id("elementid")).sendKeys(Keys.ENTER);
Run Code Online (Sandbox Code Playgroud)
对于Selenium RC:
selenium.keyPress("elementid", "\\13"); // Note the double backslash
Run Code Online (Sandbox Code Playgroud)