Selenium/Java/EdgeDriver: диалоговое окно модального окна останавливает выполнение тестового скрипта

В настоящее время я пишу тестовый скрипт для нашего веб-приложения, которое тестирует загрузку изображения профиля с помощью Microsoft Edge и EdgeDriver. Когда я инициализирую операцию щелчка для кнопки добавления фотографии, сценарий полностью перестает выполняться. Я думаю, что это проблема с родительским/дочерним окном или javascript, но уже некоторое время я застрял в этой проблеме. У меня это работает в Chrome/Firefox/IE11. Код ниже должен нажать кнопку, чтобы открыть модальное окно, скопировать путь к нужному изображению, а затем вставить путь в диалоговое окно.

Вот фрагмент кода, относящийся к проблеме:

    driverElement = driver.findElement(By.xpath("//span[text()='Add Photo']")); 
    actions.moveToElement(driverElement).click().build().perform(); //click button for modal window

    //find the image and upload it
    pathToImage = new StringSelection("C:\\path\\to\\image");
    Toolkit.getDefaultToolkit().getSystemClipboard().setContents(pathToImage, null);
    bot = new Robot();

    Thread.sleep(500);
    bot.keyPress(KeyEvent.VK_CONTROL);
    bot.keyPress(KeyEvent.VK_V);

    bot.keyRelease(KeyEvent.VK_CONTROL);
    bot.keyRelease(KeyEvent.VK_V);
    Thread.sleep(500);

    bot.keyPress(KeyEvent.VK_ENTER);
    bot.keyRelease(KeyEvent.VK_ENTER); 

После операции щелчка все выполнение останавливается, даже в режиме отладки, когда я пытаюсь вручную перейти к следующей строке выполнения.

Любая помощь будет принята с благодарностью.


person potatocode    schedule 02.06.2017    source источник
comment
Это может работать, если вы вводите путь к символу изображения один за другим. У нас был тот же сценарий для загрузки изображения, мы использовали класс робота и вводили отдельные символы один за другим, и это сработало.   -  person Murthi    schedule 03.06.2017


Ответы (1)


После тщательного расследования и тонны попыток обходных путей оказалось, что это обычная демонстрационная проблема. Microsoft не разработала WebDriver в достаточной степени, чтобы различать корневой файловый менеджер и веб-файловый проводник. Более подробную информацию можно найти здесь: Управление файлами загрузки Edge с помощью Selenium

person potatocode    schedule 05.06.2017