2014-06-10 212 views
0

我一直在努力使用Selenium的IWebDriver爲我公司的網站自動化一些測試,並且遇到了一些我似乎無法自動化的ActiveX控件(一個對話框來選擇和上傳文件)。我無法在互聯網上找到關於此的任何具體信息。我可以通過觸發頁面中的「open」元素來實際加載對話框(用戶將不得不手動點擊文件目標和打開按鈕),但是它不能通過測試(this代碼對我來說沒有任何意義,因爲它爲什麼會打開對話框,我最初有SendKeys和Click按相反的順序)。Selenium WebDriver測試一個ActiveX控件

private void UploadFile() 
    { 
     foreach (var element in driver.FindElements(By.TagName("button"))) 
     { 
      string open = element.Text; 
      if (open == "Open") 
      { 
       element.SendKeys(@"My\Relative\Path"); 
       element.Click(); 
      } 
     } 
    } 

我試過我的代碼中執行JavaScript來打開該文件,但我嘗試每次都失敗了,我的同事告訴我,因爲ActiveX控件文件上傳它不會反正工作。

有什麼想法?

謝謝!

+2

請參閱「AutoIt」用於自動化沒有DOM的任何事物。 – SiKing

+0

我會給你一個鏡頭,感謝@SiKing – sparkyShorts

回答

1

AutoIt是解決方案。我能夠在我的C#項目中執行腳本。

private void UploadFile() 
    { 
     foreach (var element in driver.FindElements(By.TagName("button"))) 
     { 
      string open = element.Text; 
      if (open == "Open") 
      { 

       element.SendKeys(@"C:\My\Relative\Path\"); 
       element.Click(); 

       string executable = @"C:\My\Relative\Path\fileUploadScript2.exe"; 
       System.Diagnostics.Process.Start(executable); 
      } 
     } 
    } 

感謝@SiKing推向正確的方向。

相關問題