Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 窗口句柄的顺序_C#_Selenium_Selenium Webdriver_Webdriver - Fatal编程技术网

C# 窗口句柄的顺序

C# 窗口句柄的顺序,c#,selenium,selenium-webdriver,webdriver,C#,Selenium,Selenium Webdriver,Webdriver,我遇到了一个问题,WebDriver似乎改变了WindowHandles的顺序。在某些情况下,这会导致我们在获得它们之后间歇性地关闭错误的一个 似乎发生的是,先前建立的第一个窗口句柄作为后续句柄返回,这导致我的逻辑当然关闭了错误的窗口句柄 WebDriver是否应该每次以相同的顺序返回窗口句柄(从第一个打开的窗口到最后一个窗口的顺序?)。这是我最初期望的,但现在我不太确定 我还应该提到,这个问题现在似乎只发生在IE中,但我不确定这是否是一个更普遍的问题 下面是我如何关闭活动窗口并切换回根窗口 p

我遇到了一个问题,WebDriver似乎改变了WindowHandles的顺序。在某些情况下,这会导致我们在获得它们之后间歇性地关闭错误的一个

似乎发生的是,先前建立的第一个窗口句柄作为后续句柄返回,这导致我的逻辑当然关闭了错误的窗口句柄

WebDriver是否应该每次以相同的顺序返回窗口句柄(从第一个打开的窗口到最后一个窗口的顺序?)。这是我最初期望的,但现在我不太确定

我还应该提到,这个问题现在似乎只发生在IE中,但我不确定这是否是一个更普遍的问题

下面是我如何关闭活动窗口并切换回根窗口

public void Close()
        {
            //switch to latest window
            string windowName = string.Empty;
            if (_driver.WindowHandles.Count > 1)
            {
               //get 'root' window in list
                windowName = _driver.WindowHandles[0];
                _driver.Close();
                _driver.SwitchTo().Window(windowName);
            }
            else
            {
                _driver.Close();
            }
        }

我们使用的是WebDriver 2.45(C#绑定,32位IEDriver)。如果有一种方法可以关闭C#绑定中的活动窗口,那么很可能也会解决这个问题

根据我的理解,这个弹出窗口处理程序是完全无序的。我记得在SO上有过同样的对话,幸运的是JimEvans(Selenium的贡献者之一)插话澄清了几个因素。我阅读了
Selenium
.NET绑定的
PopupWindowFinder
,发现类可以让您的生活更轻松。API是。然而,整个订单问题是完全复杂和痛苦的处理。见线程。只是不想重新发明轮子。

谢谢。我不知道这门课。没问题,很高兴它有帮助。