Есть ли способ переключить Webdriver на новый сеанс, который открывает новое окно и автоматически закрывает родительское окно? - PullRequest
0 голосов
/ 11 апреля 2020

У меня есть тестовый пример, который требует от меня использования IE. Когда я ввожу URL-адрес, он переходит ко мне в новое окно сеанса, где я авторизируюсь по моему lanID, и автоматически закрывает родительское окно. Поэтому я не могу переключиться на новое открытое окно.

org.openqa.selenium.NoSuchWindowException: текущее окно было закрыто.

Ответы [ 2 ]

0 голосов
/ 15 апреля 2020

InternetExplorerOptions options = new InternetExplorerOptions (); options.setPageLoadStrategy (PageLoadStrategy.NONE);

Это примерно IE. Я обработал это из IE вариантов. Это сработало.

0 голосов
/ 13 апреля 2020

Вы можете попробовать использовать метод driver.Quit, чтобы закрыть родительское окно, а затем создать новый экземпляр InternetExplorerDriver, чтобы открыть дочернее окно. При использовании этого метода кажется, что нет необходимости переключать windows. Если я неправильно понимаю вашу проблему, пожалуйста, дайте мне знать свободно.

Разница между драйвером. Количество и драйвер. Закройте методы, как показано ниже:

driver.close () Команда используется для закрытия текущего окна браузера, имеющего фокус. Если открыт только один браузер, то вызов driver.close () завершает весь сеанс браузера.

Команда driver.quit () , которая вызывает метод driver.dispose, будет Поворот закрывает все браузеры windows и завершает сеанс WebDriver. Если мы не используем quit () в конце программы, сеанс WebDriver не будет закрыт должным образом.

Пожалуйста, проверьте следующий пример:

    private const string URL = @"https://dillion132.github.io/login.html";
    private const string IE_DRIVER_PATH = @"D:\Downloads\webdriver\IEDriverServer_x64_3.14.0";  // where the Selenium IE webdriver EXE is.
    static void Main(string[] args)
    {
        InternetExplorerOptions opts = new InternetExplorerOptions() { InitialBrowserUrl = URL, IntroduceInstabilityByIgnoringProtectedModeSettings = true, IgnoreZoomLevel=true };

        //create a webdriver to open parent window. after doing something, close the window.
        using (var driver = new InternetExplorerDriver(IE_DRIVER_PATH, opts))
        {
            driver.Navigate(); 

            Thread.Sleep(3000);
            var txtname = driver.FindElementById("txtname");
            txtname.SendKeys("BBB");

            var txtpass = driver.FindElementById("txtpassword");
            txtpass.SendKeys("123");

            var submit = driver.FindElementById("Submit1");
            submit.Click(); 
            driver.Quit(); 
        }

        InternetExplorerOptions opts2 = new InternetExplorerOptions() { InitialBrowserUrl = "https://www.bing.com", IntroduceInstabilityByIgnoringProtectedModeSettings = true, IgnoreZoomLevel = true };
        //create another window.
        using (var driver = new InternetExplorerDriver(IE_DRIVER_PATH, opts2))
        {
            driver.Navigate(); 
            Thread.Sleep(3000); 
        }

        Console.ReadKey();

    }
...