2011-10-17 9 views
3

サインアップページをテストする自動テストを作成しています。このページの各テキストボックスは、ぼかしイベントで検証されます。サインアップボタンは、すべてのテキストボックスの検証が合格した場合にのみ有効です。C#でSelenium RC fireEvent()が動作しない

Iは、各テキストボックスは、次の

selenium.Type(textbox_id、コンテンツ)を行いました。 //テストの各ラウンドでプログラムでコンテンツが生成される場所 selenium.FireEvent(textbox_id、 "blur");

すべてのサインアップ情報が詰まっていますが、ぼかしイベントがトリガーされていません。 SignUpボタンは無効のままです。 また、まったく同じテストをjavaで書いていますが、これは少しの問題もなく通過しました。

私はJavaで書くのが大好きですが、私はこのタスクに使用できる言語に制限されています。 C#。誰かがこの問題を引き起こしているかもしれないことを教えてもらえますか?

答えて

0

私は同じ問題を抱えており、DOMに到達し、JavaScriptを使用してブラーイベントを発生させることによって解決策を見出しました。私は、このメソッドをIWebElementの拡張メソッドとして書きました。以下のコードを参照してください:

public static void Blur(this IWebElement element) 
{ 
    var jsExecutor = (IJavaScriptExecutor)Context.Driver; 

    try 
    { 
     jsExecutor.ExecuteScript(
      @"var fireOnThis = arguments[0]; 
      fireOnThis.scrollIntoView(false); 
      var evt = 'blur';  
      if(document.createEvent) { 
      var evObj = document.createEvent('MouseEvents'); 
      evObj.initEvent(evt, true, false); 
      fireOnThis.dispatchEvent(evObj); 
      } else if (document.createEventObject) { 
      fireOnThis.fireEvent('on'+evt); 
     }", element); 
    } 
    catch 
    {} 
} 
関連する問題