Selenium: не удается сделать полный скриншот страницы с помощью библиотеки aShot

Я пытаюсь сделать полный скриншот страницы по горизонтали и вертикали, используя Firefox gecko Драйвер и библиотека aShot.

Тем не менее, результаты не такие, как ожидалось. Взглянуть:

driver.get("https://google.com");

Screenshot fpScreenshot = new AShot().shootingStrategy(ShootingStrategies.viewportPasting(1000)).takeScreenshot(driver);
ImageIO.write(fpScreenshot.getImage(),"JPEG",new File("FullPageScreenshot.jpg"));

Посмотрел много вариантов, но ничего не работает. Интересно, что когда я пытаюсь использовать старую версию Firefox (46), я могу сделать полный скриншот без какой-либо сторонней библиотеки. Я пытаюсь использовать последнюю версию Firefox и иметь полную функциональность скриншота.

Любая помощь?

1 ответ

Пытаться:

Screenshot screenshot = new AShot().shootingStrategy(ShootingStrategies.viewportPasting(ShootingStrategies.scaling(1.75f), 1000)).takeScreenshot(driver);

где 1,75f - соотношение пикселей устройства (можно запустить window.devicePixelRatio;в консоли браузера, чтобы найти его). Если он по-прежнему не захватывает полный экран, измените его на 2f

При работе с Selenium Java Client v3.12.0, ChromeDriver v2.40, Chrome v 67.0 с использованием ashot-1.4.4.jar приведен пример для создания полного снимка экрана как по горизонтали, так и по вертикали с использованием ChromeDriver и библиотеки URL- адресов aShot https://jquery.com/:

  • Блок кода:

    import java.io.File;
    import javax.imageio.ImageIO;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.chrome.ChromeDriver;
    import org.openqa.selenium.chrome.ChromeOptions;
    import org.openqa.selenium.support.ui.ExpectedConditions;
    import org.openqa.selenium.support.ui.WebDriverWait;
    
    import ru.yandex.qatools.ashot.AShot;
    import ru.yandex.qatools.ashot.Screenshot;
    import ru.yandex.qatools.ashot.shooting.ShootingStrategies;
    
    public class ashot_CompletePage {
    
        public static void main(String[] args) throws Exception {
    
            System.setProperty("god.bless.you", "C:\\Utility\\BrowserDrivers\\chromedriver.exe");
            ChromeOptions options = new ChromeOptions();
            options.addArguments("start-maximized");
            options.addArguments("disable-infobars");
            options.addArguments("--disable-extensions"); 
            WebDriver driver =  new ChromeDriver(options);
            driver.get("https://jquery.com/");
            new WebDriverWait(driver, 20).until(ExpectedConditions.titleContains("jQuery"));
            Screenshot myScreenshot = new AShot().shootingStrategy(ShootingStrategies.viewportPasting(100)).takeScreenshot(driver);
            ImageIO.write(myScreenshot.getImage(),"PNG",new File("./Screenshots/elementScreenshot.png"));
            driver.quit();
        }
    }
    
  • Скриншоты:

Скриншот

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