小编Dmi*_*mar的帖子

Internet Explorer 8-10中的Selenium WebDriver Windows切换问题

我发现在尝试使用Selenium WebDriver测试我们的应用程序时遇到了问题.问题在于IE9中不稳定的弹出窗口.它并不总是可重现的,它发生在大约20%的窗口切换中,但几乎不可能在IE上进行测试.在FireFox中,一切都很完美.

  1. 我尝试增加超时:

TimeSpan interval = new TimeSpan(0, 0, 10); driver.Manage().Timeouts().ImplicitlyWait(interval);

  1. 为对象查找创建自己的方法:

               for (int x = 0; x <= waitTimeOut; x++)
                {
                    try
                    {
                        element = (IWebElement)driver.FindElement(By.XPath(obj.Xpath));
                        return element;
                    }
    
                    catch{}
                }
    
    Run Code Online (Sandbox Code Playgroud)
  2. 尝试使用CssSelecotrs

  3. 在找到元素之前尝试进行一些重新切换:

    driver.SwitchTo().Window(GetWindowHandle(2, 1)); driver.SwitchTo().Window(GetWindowHandle(0, 1)); driver.SwitchTo().Window(GetWindowHandle(2, 1));

如果出现问题,它始终只发生在我尝试在页面上找到的第一个元素.如果找到该元素,则在此页面上查找其他元素没有任何问题.所以我认为问题在于聚焦.

调试器中的Windows句柄正确显示.例如,如果我切换到第三个窗口,driver.CurrentWindowHandle给我第三个窗口的正确句柄.但是如果我试图找到任何元素,FindElement()会抛出异常.页面已加载,我可以手动单击该元素,但FindElement()无法找到它.如果我重新运行测试,则可以毫无问题地通过此步骤,并且仅在下一次切换或进一步切换时失败.这是不可预测的.

这样的问题可能是什么原因?

java selenium internet-explorer webdriver

4
推荐指数
1
解决办法
8595
查看次数

标签 统计

internet-explorer ×1

java ×1

selenium ×1

webdriver ×1