3

Enter入力された値に基づいてフィールドが公開されるため、Selenium Server (v2.21) と Selenium Java Client (v.2.21.0) を使用して、入力ごとにキーを押す必要がある 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 
}   

前のコマンドが正常に実行されるまで、セレンを一時停止する必要があります。だから私は sleep() メソッドを使用しています。私のテスト ケースでは、700 MillSec の間一時停止する必要がありました。要件に基づいて、値を変更する必要があります。

于 2012-05-29T13:54:59.810 に答える
6

WebDriver にはクラス キーがあります。これを使用して、ENTER キーを送信できます。このような

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

セレン 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

これを試して。私がテストしているアプリケーションでは、ユーザーが表のセルに値を入力するために次の手順を実行する必要があります。(セルをクリックし、Enterキーを押し、数字を入力し、もう一度Enterキーを押して完了します)スクリプトで機能しています

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 に答える
-2

これを試しましたか?(これはルビーです)

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