Снятие скриншота элемента c помощью функции Firefox.

screenshot
java
webdriver
firefox
Теги: #<Tag:0x00007fedc10b65b0> #<Tag:0x00007fedc10b5f48> #<Tag:0x00007fedc10b5ca0> #<Tag:0x00007fedc10b5980>

(Богдан Ткаченко) #1

В Firefox есть функция снятие скриншота элемента, так вот вопрос заключается в следующем можно как-то воспользоваться данной функцией для снятия скрина конкретного элемента?

P.S. Взять скриншот всей страницы, потом координаты элемента его расположения на странице и размеры элемента, потом вырезать из скриншота нужный нам элемент по координатам и размерам, я знаю, меня интересует как воспользоваться данной функцией которая предлагает Firefox.

P.S.S. Для тех кто не знает жмем F12 потом в инспекторе выбираем нужный нам элемент жмем правой кнопкой мышки на нем и выбираем “Скриншот узла”.


(Богдан Ткаченко) #2
	WebDriver driver = new FirefoxDriver();

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

	File scr = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);

	Files.copy(scr, new File("D://1.png"));

	WebElement elem = driver.findElement(By.xpath("//img[@id='hplogo']"));

	File scr1 = ((TakesScreenshot) elem).getScreenshotAs(OutputType.FILE);

	Files.copy(scr1, new File("D://2.png"));

	Thread.sleep(5000);

	driver.quit();

Короче если хотим снять скрин элемента, то вместо драйвера мы приводим к типу TakesScreenshot сам элемент с которого хотим снять скрин.

P.S. Работает только в FIREFOX, в других браузерах кидает эксепшин org.openqa.selenium.UnsupportedCommandException.

P.S.S. Работает только с версии Selenium 3.9.0