Selenium WebDriver在Internet Explorer中的点击问题

7

在多台运行Windows 7的测试工作站上使用Selenium WebDriver。

下面是按钮的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#代码片段:

一个Selenium C#代码片段如下:

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

在一些Windows测试工作站上,按钮点击方法可以正常工作。但是在其他Windows 7测试工作站上,按钮点击无法按下按钮,只会使按钮高亮显示。
我还遇到了类似的问题,有时需要包含两个:
query.Click();

需要连续输入一系列命令才能按下该按钮。

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

有没有想法来解决这个问题或者是否有人有解决这个问题的方案。

谢谢。

Joe

1个回答

22

您没有说明使用哪个浏览器出现了问题,但我会运用我的心灵调试能力猜测您可能是在谈论Internet Explorer。IE驱动程序存在已知的挑战。

一类挑战是需要将浏览器缩放级别设置为100%,否则IE驱动程序无法正确计算要点击的坐标。当在一个机器上点击有效而另一个机器上无效时通常会出现这种情况,并在项目维基中有所记录。

另一类问题涉及特定于窗口焦点的处理方法。一种替代方法是只为IE驱动程序使用模拟事件。这种方法也存在自己的缺陷,但在您的情况下可能会起作用。由于您提到正在使用C#,因此以下是禁用本机事件的.NET绑定代码:

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

Jim,我对你的心灵调试能力印象深刻。是的,浏览器是IP 9,而且你的解决方案解决了这个问题。 - Joe Pitz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接