7

在多个 Windows 7 测试工作站上使用 Selenium WebDriver。

Button 的 FireBug 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">

Selenium C# 代码片段如下:

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

在某些 Windows 测试工作站上,按钮单击方法工作得很好。在其他 Windows 7 测试工作站上,单击按钮不会按下按钮,按钮只是突出显示。

我也看到过类似的问题,有时我必须包括两个:

query.Click();

连续命令以使按钮按下。

我们一直在尝试找出不同环境之间的不同之处,但没有提出任何解决方案。

有关如何解决此问题或是否有人对此问题有解决方案的任何想法。

谢谢

4

1 回答 1

22

你还没有说你看到问题的浏览器是什么,但我将使用我的心理调试能力来推断你可能在谈论 Internet Explorer。IE 驱动程序存在已知的挑战。

一组挑战是您需要将浏览器的缩放级别设置为 100%,否则 IE 驱动程序无法计算坐标才能正确点击。当单击在一台机器上而不是另一台机器上工作时,通常会出现这种情况,并且记录在项目 wiki中。

另一类问题特别涉及窗口焦点。一种替代方法是仅对 IE 驱动程序使用模拟事件。这种方法有其自身的缺陷,但它可能适用于您的情况。由于您提到您使用的是 C#,因此这里是用于禁用本机事件的 .NET 绑定的代码。

InternetExplorerOptions options = new InternetExplorerOptions();
options.EnableNativeEvents = false;
IWebDriver driver = new InternetExplorerDriver(options);
于 2012-08-27T19:48:28.937 回答