変更を行う際に値を入力しています。しかし、どういうわけか、このイベントはセレン型のコマンドで解雇されていません。セレン型コマンドでonchangeイベントが発生しない
また、typeKeyとtypeAtを試しましたが、成功しませんでした。これを回避するには?
変更を行う際に値を入力しています。しかし、どういうわけか、このイベントはセレン型のコマンドで解雇されていません。セレン型コマンドでonchangeイベントが発生しない
また、typeKeyとtypeAtを試しましたが、成功しませんでした。これを回避するには?
あなたのソリューションは、通常のJavaScriptコードを見ることで発見された。..
あなたは常に持っているオプションは、値に入れ、手でコードから実際のOnChangeイベントをトリガすることです。
は、FirefoxのWindowsがアクティブであるとのOnChangeがトリガされるように防ぐことはないと、このlink text 問題に関する未解決の問題があります。
はtypeKeysコマンドを使用する前にこれを試してみてください:
selenium.selectWindow(null);
あなたはセレン1.1を使用している場合は、手動で値を入力した後onChangeイベントをトリガするために使用することができますfireEventコマンドがあります。多分あなたの問題を解決するだろうか?
これは試す、のonchangeイベントをトリガするには(入力が文字r
た)ソースは次のようになります
Typekeys targetID input
FireEvent targetID focus
Type targetID input
ために
<tr>
<td>typeKeys</td>
<td>//form/input</td>
<td>r</td>
</tr>
<tr>
<td>fireEvent</td>
<td>//form/input</td>
<td>focus</td>
<tr>
<td>fireEvent</td>
<td>//form/input</td>
<td>focus</td>
</tr>
<tr>
<td>type</td>
<td>//form/input</td>
<td>r</td>
</tr>
</tr>
<tr>
<td>type</td>
<td>//form/input</td>
<td>r</td>
</tr>
を以下の3つのコマンドを実行しますIDE に私のために働きましたSelenium IDEでこのコマンドを追加:
fireEvent targetID blur
これは受け入れられた答え(IMHO)。これは私が必要としていたものです。また、私の場合、これは 'type'ではなく' sendKeys'で使われなければなりませんでした。そんなにありがとう@trex。 – OscuroAA
Firefoxにはbugがあり、ブラウザウィンドウにフォーカスが外れている間に一部のイベントが実行されないようにします。これは、オートメーションテストを実行しているときに問題になる可能性があります。これは、ウィンドウのフォーカスが合っていなくてもタイピングしている可能性があります。この問題を解決するには
私は私のテストにはJavaScriptを注入し、「手動」変更イベントをトリガー:
//suppose "element" is an input field
element.sendKeys("value");
JavascriptExecutor jsExecutor = (JavascriptExecutor) driver;
jsExecutor.executeScript("$(arguments[0]).change();", element);
あなたは私が変更イベントをトリガするためにjQueryを使用している、気づいたかもしれませんが。アプリでjQueryを使用していない場合は、hereにvanilla javascriptを使用してトリガーする方法を確認できます。
誰かを助ける希望。
ファイル入力フィールドで機能しないようです – ndtreviv
それは「のSendKeys」コマンドでは、これを修正するために実装されたようになっています
https://code.google.com/p/selenium/issues/detail?id=5451
これは私のために働きました。
<tr>
<td>sendKeys</td>
<td>id=Quantity</td>
<td>Type stuff here</td>
</tr>
私はAjaxで作成したドロップダウンリストで同様の問題を抱えていました。フィールドにユーザタイプとして
は、システムはさらに悪化target='#'
とのリンクとしてそれぞれ、いくつかのオプションを持つwはAJAX div
を表示し、充填のonChange()に呼び出された関数がありましたシステムフラグ、およびそのフラグがform.submitの検証として使用される() (オハイオ州、痛み)とにかく
、このために私の解決策:
1 - セレンのSendKeysコマンドのAjaxのdivので、表示されます
<tr>
<td>sendKeys</td>
<td>id=txtTipoDocumento</td>
<td>ipsum lorem</td>
</tr>
2から
<tr>
<td>waitForElementPresent</td>
<td>link=ipsum lorem</td>
<td></td>
</tr>
3表示されるように、予想されるオプションを使用してリンクを待つ - セレンclickAtにリンク
<tr>
<td>clickAt</td>
<td>link=ipsum lorem</td>
<td>10,20</td>
</tr>
4 - ここでの一つでありますキャッチ:手放すonChange()とぼかしイベント。間、組版の送信ボタンををClickAt()コマンドを実行最後に、確かに、私はセレン作らない - また、
<tr>
<td>fireEvent</td>
<td>id=txtTipoDocumento</td>
<td>blur</td>
</tr>
<tr>
<td>fireEvent</td>
<td>id=selSerie</td>
<td>change()</td>
</tr>
<tr>
<td>fireEvent</td>
<td>id=selSerie</td>
<td>blur</td>
</tr>
<tr>
<td>focus</td>
<td>id=imgDataElaboracao</td>
<td></td>
</tr>
5は異なるフィールドにフォーカスを設定するには、ブラウザをフォーチェmouseDownイベントとのMouseUpは
<tr>
<td>mouseDown</td>
<td>id=btnSalvar</td>
<td></td>
</tr>
<tr>
<td>focus</td>
<td>id=btnSalvar</td>
<td></td>
</tr>
<tr>
<td>clickAt</td>
<td>id=btnSalvar</td>
<td>10,20</td>
</tr>
ないエレガントなコマンドが、それが働きました。
私はIDEを使用しています。これは私がやったことです。 [#実行中:| getEval | selenium.selectWindow(null)|| ] 動作しません。エラー:selenium.selectWindowは関数ではありません –
私は通常、Selenium RCでしか動作しませんし、IDEでいくつかの問題を解決することもできません。あなたの質問をその情報で更新する必要があります – StefanE