2011-10-17 42 views
3

我在寫一個自動測試來測試註冊頁面。此頁面上的每個文本框均在模糊事件上進行驗證。註冊按鈕僅在所有文本框的驗證通過後才能啓用。Selenium RC fireEvent()不能在C中工​​作#

我已經爲每個文本框執行的以下

selenium.Type(textbox_id,內容); //在每一輪測試中以編程方式生成內容 selenium.FireEvent(textbox_id,「blur」);

所有註冊信息都已填滿,但未觸發模糊事件。註冊按鈕保持禁用狀態。 此外,我寫了一個完全相同的測試在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 
    {} 
}