Кто-нибудь знает, можно ли сделать скриншот с помощью Selenium WebDriver? (Примечание: не Selenium RC)
selenium
selenium-webdriver
ashot
takesscreenshot
selenium-shutterbug
Джеймс Холлингворт
источник
источник
Ответы:
Ява
Да, это возможно. Следующий пример на Java:
источник
/tmp
это происходит в собственной файловой системе, и FirefoxDriver записывает скриншоты/tmp
.HtmlUnitDriver
это не реализованоTakesScreenshot
( список поддерживаемых драйверов см. В selenium.googlecode.com/git/docs/api/java/org/openqa/selenium/… ). Но вы можете сохранить как HTML.org.apache.commons.io.FileUtils
питон
У каждого WebDriver есть
.save_screenshot(filename)
метод. Так что для Firefox его можно использовать так:Смущает, что существует
.get_screenshot_as_file(filename)
метод, который делает то же самое.Существуют также методы для:
.get_screenshot_as_base64()
(для встраивания в html) и.get_screenshot_as_png()
(для извлечения двоичных данных).и обратите внимание, что в WebElements есть
.screenshot()
метод, который работает аналогично, но захватывает только выбранный элемент.источник
driver.set_window_size(1366, 728)
.C #
источник
JavaScript (Selenium-Webdriver)
источник
var1
если хотите. Вы должны посмотреть наtakeScreenshot()
функцию, чтобы знать, что это такое. Может быть, двоичное изображение от javascript с использованием canvas. Это может быть дом, прежде чем он будет оказан. Посмотри в.Рубин
доступно больше типов файлов и опций, и вы можете увидеть их в take_screenshot.rb
источник
headless
иFirefox
Ява
Я получил эту проблему решена. Вы можете расширить его,
RemoteWebDriver
чтобы дать ему все интерфейсы, которые реализует его прокси-драйвер:источник
PHP (PHPUnit)
Использует расширение PHPUnit_Selenium версии 1.2.7:
источник
C #
источник
Ява
источник
Jython
источник
Java (Robot Framework)
Я использовал этот метод для съемки экрана.
Вы можете использовать этот метод везде, где это необходимо.
источник
Ява
Кажется, здесь не хватает - снимок экрана определенного элемента в Java:
источник
code
this.driver.manage (). Window (). SetSize (new Dimension (1680, 1050)); или удалить любые ненужные элементы через CSS. Правильным решением было бы рассчитать смещение по оси Y от прокрутки.Firefox
прекрасно работает как он обрежет экран элемента от полного изображения , основываясь на размерах. В томChrome
случае, если элемент доступен в области просмотра без прокрутки изображения из этой части обзора, он хорошо фиксирует элемент. Если мы хотим сделать скриншот после двухкратной прокруткиdocument.documentElement.clientHeight
высоты клиента, используйте(location.y)-2*clientHeight
точный скриншот элемента. Спасибо за этот пост, поскольку он помогает мне ...C #
Требуются NuGetPackages:
Протестировано с .NETFramework v4.5.2
источник
Ява
Я не мог получить принятый ответ для работы, но согласно текущей документации по WebDriver , для Java 7 на OS X 10.9 сработало следующее:
источник
Рубин (Огурец)
источник
Рубин
источник
PHP
источник
takescreenshot
функцию? В частности, откуда берется$event
переменная? Я полный селен Noob, поэтому ответ на этот вопрос, который не предполагает, что предварительные знания Selenium будет очень цениться!PowerShell
Другие водители ...
источник
[OpenQA.Selenium.ScreenshotImageFormat]::Png
чемSystem.Drawing
пространство имен.Python - Скриншот элемента:
Это довольно старый вопрос и имеет несколько ответов. Однако кажется, что снимок экрана определенного веб-элемента с использованием Python здесь отсутствует.
расположение
Веб-элемент имеет свою собственную позицию на странице и обычно измеряется в пикселях x и y и известен как (x, y) координаты элемента. И местоположение объекта содержит два значения.
размер
Как и местоположение, каждый WebElement имеет ширину и высоту; Доступен как размер объекта.
Используя координаты (x, y) и значения width, height, мы можем обрезать изображение и сохранить его в файле.
Примечание: взято с http://allselenium.info/capture-screenshot-element-using-python-selenium-webdriver/
источник
Есть несколько методов через селен«s Ява а также питонклиент сделать скриншот используяСелен-WebDriver
Методы Java
Ниже приведены различные методы Java для создания снимка экрана :
Использование
getScreenshotAs()
из интерфейса TakesScreenshot :Блок кода:
Скриншот:
Если веб-страница является jquery включен , то вы можете использоватьвыстрелиз библиотеки пазона / ашота :
Блок кода:
Скриншот:
С помощью Селен-Shutterbugиз библиотеки assertthat / selenium-shutterbug :
Блок кода:
Скриншот:
Методы Python
Ниже приведены различные методы Python для создания снимка экрана :
Используя
save_screenshot()
метод:Блок кода:
Скриншот:
Используя
get_screenshot_as_file()
метод:Блок кода:
Скриншот:
Используя
get_screenshot_as_png()
метод:Блок кода:
Скриншот:
источник
питон
Вы можете захватить изображение из окон, используя веб-драйвер python. Используйте код ниже, на какой странице нужно сделать снимок экрана
источник
Ява
Используя эти два метода, вы можете сделать снимок экрана с датой и временем.
источник
Ява
Используя RemoteWebDriver, после расширения узла с возможностью создания снимков экрана я бы сохранил снимок экрана следующим образом:
Вы можете использовать этот метод везде, где это необходимо. Затем, я полагаю, вы можете настроить таблицу стилей maven-surefire-report-plugin по адресу surefire-reports / html / custom.css, чтобы ваши отчеты содержали ссылку на правильный снимок экрана для каждого теста?
источник
Ява
Надеюсь, что это решит вашу проблему
источник
C #
источник
Selenese
источник
C #
Вы можете использовать следующий фрагмент кода / функцию, чтобы сделать снимок экрана с селеном:
источник
Вы можете попробовать AShot API. Вот ссылка на GitHub для того же.
https://github.com/yandex-qatools/ashot
Некоторые из тестов здесь ...
https://github.com/yandex-qatools/ashot/tree/master/src/test/java/ru/yandex/qatools/elementscompare/tests
источник
ЯВА
Метод захвата экрана для сбоев в Selenium с добавлением TestName и Timestamp.
источник
C # (Ranorex API)
источник