Прокручиваемый снимок экрана с использованием ashot в селене, который не работает с версией Internet Explorer 11, но отлично работает в Chrome и Firefox

    public static void takeScrollableScreenshot(WebDriver webdriver, String filePath, WebDriverWait wait) throws Exception
      {
    File myDirectory = new File(filePath);
    if (!myDirectory.exists()) {
       myDirectory.mkdirs(); 
    }else{
       // Directory already exist
    }

    Screenshot screenshot = new AShot().shootingStrategy(ShootingStrategies.viewportPasting(500))
            .takeScreenshot(webdriver);

    ImageIO.write(screenshot.getImage(), "PNG", myDirectory);

}

образец вывода

какую ошибку вы получаете. Я использую IE11, и он отлично с этим работает.

dangi13 27.07.2018 11:43
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
1
1 410
1

Ответы 1

Вы можете использовать метод ниже, чтобы сделать снимок экрана всего страницы в IE:

/**
     * @param driver
     * @param file e.g "C:\\Users\\username\\Desktop\\RegressionTests\\oracle.png"
     * @throws IOException
     */
    public static void takeScreenshot(WebDriver driver, String file) throws IOException {
         ((JavascriptExecutor) driver).executeScript("window.scrollTo(0, document.body.scrollHeight)");
         File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
         FileUtils.copyFile(scrFile, new File(file));
     }

Надеюсь, это вам поможет :)

он прокручивает страницу вниз и делает снимок экрана, но мне нужен снимок экрана всей страницы

Reshma Pradeep 27.07.2018 14:12

будет сделан снимок экрана всей страницы

dangi13 27.07.2018 14:12

проверьте изображение после того, как был сделан снимок экрана

dangi13 27.07.2018 14:13

если вы удалите код JavascriptExecutor, он также будет работать и сделает снимок экрана всего страницы (только в IE), для других браузеров мы используем Ashot

dangi13 27.07.2018 14:21

Вы это проверили.

dangi13 27.07.2018 15:07

@ dangi13 нет ... это не сработало, он по-прежнему делает снимок экрана только в области просмотра

Ronaldo 17.12.2019 04:04

Другие вопросы по теме