Удаленка для jenkins+selenide+selenoid+allure+docker спецов на 2-3 часа в день. 100% remote! Присоединиться к проекту

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

screenshot
firefox
java
webdriver
Теги: #<Tag:0x00007fedb86efde0> #<Tag:0x00007fedb86efc50> #<Tag:0x00007fedb86efac0> #<Tag:0x00007fedb86ef908>

(Богдан Ткаченко) #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