Перейти к содержимому

Selenium WebDriver: полное руководство
онлайн, начало 19 октября
Логи как инструмент тестировщика
онлайн, начало 22 октября
Школа для начинающих тестировщиков
онлайн, начало 22 октября
Тестирование REST API
онлайн, начало 22 октября
Фотография

Снятие скриншота элемента - поддержка браузерами


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 5

#1 z41

z41

    Новый участник

  • Members
  • Pip
  • 3 сообщений

Отправлено 18 Сентябрь 2018 - 17:07

Привет, пытаюсь снять скриншот элемента. 

Gecko driver снимает скриншот полной страницы. Chromedriver ругается на неизвестную команду "screenshot/<element_id>"

ЧЯДНТ? насколько я понял из ковыряния issues на гитхаб - оба уже должны саппортать эту возможность (а она ну очень сильно нужна).

 

Версии chrome / chromedriver 69 / 2.42. 

Версии Firefox / geckodriver 62 / 0.22

Клиентские библиотеки 3.14 .NET

 

 


  • 0

#2 sergueik

sergueik

    Активный участник

  • Members
  • PipPip
  • 75 сообщений
  • ФИО:кузьмин сергей

Отправлено 18 Сентябрь 2018 - 18:37

https://github.com/y...x-qatools/ashot
 
WebDriver Screenshot utility
 
Takes a screenshot of a WebElement on different platforms (i.e. desktop browsers, iOS Simulator Mobile Safari, Android Emulator Browser)
пробовали ? 

  • 0

#3 sergueik

sergueik

    Активный участник

  • Members
  • PipPip
  • 75 сообщений
  • ФИО:кузьмин сергей

Отправлено 18 Сентябрь 2018 - 18:53

я уже потом заметил что вам надо .net -  не знаю куда смотрит сатья н и  что же делать - ashot вам наверное не подходит...


  • 0

#4 z41

z41

    Новый участник

  • Members
  • Pip
  • 3 сообщений

Отправлено 18 Сентябрь 2018 - 19:00

Как вырезать элемент на скриншоте - это понятно. Но тут проблема в производительности, снятие полного скриншота занимает на моей машине около 0.4с (это уже очень много для моих задач). А на виртуалке, где крутится локальный дженкинс для отладки, 2-4 секунды, что совсем неприемлемо. Есть подозрения, что бутылочным горлышком является сеть, хотел проверить, сделав скриншот отдельного элемента.

Существует также решение html2canvas, которое позволяет делать скриншот кусочка страницы. Оно работает, и вроде в пару раз быстрее, но опять-таки не для меня - не может снять скриншот canvas-элемента. Просто toDataUrl для нужного мне канваса так же не работает в силу особенностей движка приложения (three.js), даже с preserveDrawingBuffer: true. Работающего простого способа я не нашел.

В общем со всех сторон засада. Вероятно, придется модифицировать само приложение. Что очередной квест опять-таки.


  • 0

#5 Noksa

Noksa

    Активный участник

  • Members
  • PipPip
  • 110 сообщений
  • ФИО:Александр

Отправлено 18 Сентябрь 2018 - 20:19

Боюсь что только варик через скрин - ректангл
  • 0

#6 z41

z41

    Новый участник

  • Members
  • Pip
  • 3 сообщений

Отправлено 19 Сентябрь 2018 - 10:48

Нашел решение, requestAnimationFrame и drawImage для копирования картинки с одного канваса на другой с последующей генерацией png-картинки в base64 через toDataURL помогло.

Впрочем, вопрос по поддержке остался, хоть уже и не критично.


  • 0


Selenium 2.0: стартовый уровень
онлайн, начало 9 ноября
Программирование на Java для тестировщиков
онлайн, начало 16 ноября
Автоматизация функционального тестирования
онлайн, начало 9 ноября
Selenium WebDriver: полное руководство
онлайн, начало 19 октября



Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных

Яндекс.Метрика
Реклама на портале