2014-06-10 3 views
0

저는 Selenium의 IWebDriver를 사용하여 회사 웹 사이트의 일부 테스트를 자동화하고 일부 자동화 된 것으로 보일 수없는 ActiveX 컨트롤 (파일을 선택하고 업로드하는 대화 상자)을 실행했습니다. 인터넷에서 이에 대한 특정 정보를 찾을 수 없었습니다.Selenium WebDriver가 ActiveX 컨트롤을 테스트합니다.

그러나 실제로 페이지 내에서 "열기"요소를 트리거하여 대화 상자를로드 할 수 있지만 (사용자가 수동으로 파일 대상과 열기 버튼을 클릭해야 함) 테스트에 실패합니다 코드가 왜 내가 대화 상자를 여는 지 이해가되지 않는다. 원래는 SendKeys와 Click를 역순으로 사용했다.

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(); 
      } 
     } 
    } 

나는 파일을 열려면 내 코드 내에서 자바 스크립트를 실행하려고했지만, 내 시도는 매번 실패하고 나의 동료가 된 ActiveX 파일 업로드를 제어하기 때문에 그것은 어쨌든 작동하지 않을 것이라고 얘기했다.

의견이 있으십니까?

감사합니다.

+2

DOM이없는 항목을 자동화하는 데 "AutoIt"을 참조하십시오. – 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 덕분에 올바른 방향으로 밀었습니다.

관련 문제