it-roy-ru.com

Исключение (org.openqa.Selenium.NoSuchWindowException): использование Selenium WebDriver с Java в Internet Explorer

Используя IE для автоматизации с использованием Selenium Webdriver, я могу открыть URL-адрес, но поиск элемента на этой странице вызывает следующее исключение:

org.openqa.Selenium.NoSuchWindowException: Невозможно найти элемент в закрытое окно (ВНИМАНИЕ: сервер не предоставил никакой трассировки стека информации)

Я попробовал метод driver.switchTo.window(), но он не работает . Я искал его часами и ничего не получил.

Вот код:

public static Selenium selenium;

public static void main(String args[]) {

    try {

        System.setProperty(
            "webdriver.ie.driver",
            "D:\\Driver\\IEDriverServer_Win32_2.32.3_latest\\IEDriverServer.exe");

        DesiredCapabilities capab = DesiredCapabilities.internetExplorer();
        capab.setCapability(
            InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,
            true);

        WebDriver driver = new InternetExplorerDriver(capab);
        driver.get("http://www.google.com");
        driver.findElement(By.xpath(".//*[@id='addlang']/a[1]")).click();

    } catch (Exception e) {
        e.printStackTrace();
    }
}
5
Amit

Удалите возможность INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS и вручную установите настройки защищенного режима IE, чтобы они были одинаковыми для всех зон.

Источник: 

  1. http://jimevansmusic.blogspot.com/2012/08/youre-doing-it-wrong-protected-mode-and.html

  2. NoSuchElementException возникает во время реализации InternetExplorerDriver в Selenium WebDriver

7
Yi Zeng
case "ie_driver":           

    //IE CODE
    DesiredCapabilities cap = new DesiredCapabilities();
    cap.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true);
    cap.setCapability(InternetExplorerDriver.INITIAL_BROWSER_URL, "https://testvmm6.partnersonline.com/vmm");
    cap.internetExplorer().setCapability("ignoreProtectedModeSettings", true);

    System.setProperty("webdriver.ie.driver", System.getProperty("user.dir")+"//exe//IEDriverServer1.exe");
    cap.setCapability("IE.binary", "C:/Program Files (x86)/Internet Explorer/iexplore.exe");
    cap.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
    cap.setJavascriptEnabled(true);
    cap.setCapability("requireWindowFocus", true);
    cap.setCapability("enablePersistentHover", false);
3
Venkatesh Chinna

Проблема, которая помогла мне, состояла в том, чтобы установить страницу инициализации (IE 11 и 32 и 64)

 private WebDriver getIEDriver() {
    DesiredCapabilities cap = new DesiredCapabilities();
    cap.setCapability(InternetExplorerDriver.INITIAL_BROWSER_URL, INIT_PAGE);

    File file = new File("E:/drivers/IEDriverServer.exe");
    System.setProperty("webdriver.ie.driver", file.getAbsolutePath());
    return new InternetExplorerDriver(cap);
 }
1
Diana S.

Лучше всего сделать несколько изменений в реестре:

  1. Перейти к редактированию реестра (regedit из окна запуска)

  2. Посмотрите в своем реестре под HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\InternetSettings\Zones. Там вы должны увидеть ключи с номерами 0-4. Под этими ключами 0-4 найдите значение с именем 2500

  3. Для всех ключей от 0 до 4 имеют одинаковые данные для значения 2500. Например, для ключа 0, если значение 2500 имеет данные как 3 (шестнадцатеричные данные), то сделайте данные для значения 2500 как 3 для всех других ключей (1,2,3,4).

  4. Теперь попробуйте запустить скрипт.

0
user3518765