3

여러 Windows 7 테스트 워크 스테이션에서 Selenium WebDriver를 사용하십시오. 버튼의Selenium WebDriver Internet Explorer의 문제를 클릭하십시오.

지르고 html로가 아래와 같이 표시됩니다

<input type="submit" style="border-color:Black;border-width:1px;border-style:solid; 
font-family:tahoma,arial;font-size:0.7em;" id="UserPassword1_LoginButton" 
onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;UserPassword1$LoginButton&quot;, 
&quot;&quot;, true, &quot;UserPassword1&quot;, &quot;&quot;, false, false))" value="Log  In" name="UserPassword1$LoginButton"> 

셀레늄 C# 코드의 조각은 다음과 같습니다 : 일부 창 테스트 워크 스테이션에

try 
     { 
      // Click on the button identified by Id 
      IWebElement query = Driver.FindElement(By.Id(strControl)); 
      query.Click(); 
     } 

버튼 클릭 방법은 잘 작동합니다. 다른 Windows 7 테스트 워크 스테이션에서는 버튼 클릭으로 버튼이 눌러지지 않습니다. 버튼이 강조 표시됩니다. 연속

query.Click(); 

명령이 인쇄 버튼을 얻을 :

나는 또한 내가 가진 몇 번 두 가지를 포함하는 유사한 문제를 보았다.

우리는 환경간에 어떤 차이가 있는지 알아 내려고했지만 어떤 해결책도 나오지 않았습니다.

이 문제를 해결하는 방법이나이 문제에 대한 해결책을 가진 사람이 있으면 아이디어를 얻으십시오.

감사

답변

18

당신은 말했다하지 않은 어떤 브라우저의 문제를보고있다,하지만 당신은 아마임을 추론 할 내 심령 디버깅 능력을 사용하는거야 Internet Explorer에 대해 이야기합니다. IE 드라이버에는 알려진 문제점이 있습니다.

도전 과제 중 하나는 브라우저의 확대/축소 수준을 100 %로 설정해야하거나 IE 드라이버가 제대로 클릭하기위한 좌표를 계산할 수 없다는 것입니다. 이는 한 컴퓨터에서만 작동하지만 다른 컴퓨터에서는 작동하지 않는 경우가 많으며 project wiki에 문서화되어 있습니다.

다른 종류의 문제는 특히 window focus을 다룹니다. 한 가지 대안은 IE 드라이버에 대해 시뮬레이션 된 이벤트 만 사용하는 것입니다. 이 접근법에는 자체 함정이 있지만 상황에 따라 다를 수 있습니다. C#을 사용한다고 언급 했으므로 .NET 바인딩이 원시 이벤트를 사용하지 않도록 설정하는 코드는 다음과 같습니다.

InternetExplorerOptions options = new InternetExplorerOptions(); 
options.EnableNativeEvents = false; 
IWebDriver driver = new InternetExplorerDriver(options); 
+0

짐, 나는 당신의 초능력 디버깅 능력에 깊은 인상을 받았습니다. 예, 브라우저는 IP 9이며 솔루션에서 문제를 해결했습니다. –