3

在多個Windows 7測試工作站上使用Selenium WebDriver。巴頓在Internet Explorer中的Selenium WebDriver Click問題

螢火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測試工作站上的按鈕,點擊方法工作得很好。在其他Windows 7測試工作站上,按鈕點擊不會按下按鈕,該按鈕只是突出顯示。

我也看到了類似的問題,在某些時候,我必須包括兩個:連續

query.Click(); 

命令來獲得按鈕按下。

我們一直在試圖弄清楚環境之間有什麼不同,但沒有提出任何解決方案。

有關如何解決此問題或任何人有解決此問題的任何想法。

感謝

回答

18

你還沒說什麼瀏覽器(S)你看到的問題,但我會用我的心理調試權力來推斷,你可能談論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,是的,你的解決方案解決了這個問題。 –