Adakah yang tahu apakah mungkin untuk mengambil tangkapan layar menggunakan Selenium WebDriver? (Catatan: Bukan Selenium RC)
selenium
selenium-webdriver
ashot
takesscreenshot
selenium-shutterbug
James Hollingworth
sumber
sumber
Jawaban:
Jawa
Ya itu mungkin. Contoh berikut di Jawa:
sumber
/tmp
menggunakan sistem file sendiri, dan FirefoxDriver menulis tangkapan layar/tmp
.HtmlUnitDriver
tidak menerapkanTakesScreenshot
(lihat selenium.googlecode.com/git/docs/api/java/org/openqa/selenium/... untuk daftar driver yang didukung). Tetapi Anda dapat menyimpan sebagai HTML.org.apache.commons.io.FileUtils
Python
Setiap WebDriver memiliki
.save_screenshot(filename)
metode. Jadi untuk Firefox, bisa digunakan seperti ini:Yang membingungkan, ada
.get_screenshot_as_file(filename)
metode yang juga melakukan hal yang sama.Ada juga metode untuk:
.get_screenshot_as_base64()
(untuk menanamkan dalam html) dan.get_screenshot_as_png()
(untuk mengambil data biner).dan Perhatikan bahwa WebElements memiliki
.screenshot()
metode yang berfungsi serupa, tetapi hanya menangkap elemen yang dipilih.sumber
driver.set_window_size(1366, 728)
.C #
sumber
JavaScript (Selenium-Webdriver)
sumber
var1
jika Anda mau. Anda harus melihattakeScreenshot()
fungsinya untuk mengetahui apa sebenarnya itu. Mungkin gambar biner yang dihasilkan dari javascript menggunakan kanvas. Ini bisa menjadi dom, sebelum diberikan. Memeriksa.Rubi
lebih banyak jenis dan opsi file tersedia dan Anda dapat melihatnya di takes_screenshot.rb
sumber
headless
danFirefox
Jawa
Saya mengatasi masalah ini. Anda dapat menambahkannya
RemoteWebDriver
untuk memberikan semua antarmuka yang diimplementasikan oleh driver proksi:sumber
PHP (PHPUnit)
Menggunakan ekstensi PHPUnit_Selenium versi 1.2.7:
sumber
C #
sumber
Jawa
sumber
Jython
sumber
Java (Kerangka Robot)
Saya menggunakan metode ini untuk mengambil screenshot.
Anda dapat menggunakan metode ini di mana pun diperlukan.
sumber
Jawa
Tampaknya tidak ada di sini - mengambil tangkapan layar elemen tertentu di Jawa:
sumber
code
this.driver.manage (). Window (). SetSize (Dimensi baru (1680, 1050)); atau untuk menghapus elemen yang tidak diperlukan melalui css. Solusi yang tepat adalah menghitung offset-y dari pengguliran.Firefox
berfungsi dengan baik saat memotong layar elemen dari Gambar penuh berdasarkan Dimensi. DalamChrome
jika elemen tersedia dalam pandangan sebagian dengan keluar bergulir dari pandangan sebagian gambar menangkap elemen baik. Jika kita ingin mengambil tangkapan layar setelah menggulirdocument.documentElement.clientHeight
klien sebanyak dua kali Tinggi gunakan(location.y)-2*clientHeight
untuk mendapatkan tangkapan layar elemen yang tepat. Terima kasih atas pos ini karena ini membantu saya ...C #
Membutuhkan NuGetPackages:
Diuji dengan .NETFramework v4.5.2
sumber
Jawa
Saya tidak bisa mendapatkan jawaban yang diterima untuk bekerja, tetapi sesuai dengan dokumentasi WebDriver saat ini , berikut ini berfungsi dengan baik untuk saya dengan Java 7 pada OS X 10.9:
sumber
Ruby (Mentimun)
sumber
Rubi
sumber
PHP
sumber
takescreenshot
fungsi ini ? Secara khusus dari mana$event
variabel berasal? Saya seorang Selenium noob yang lengkap sehingga jawaban untuk pertanyaan ini yang tidak mengasumsikan pengetahuan Selenium sebelumnya akan sangat dihargai!PowerShell
Pengemudi lain ...
sumber
[OpenQA.Selenium.ScreenshotImageFormat]::Png
daripadaSystem.Drawing
namespace.Python - Screenshot of Element:
Ini adalah pertanyaan yang cukup lama dan memiliki banyak jawaban. Namun sepertinya mengambil tangkapan layar dari elemen web tertentu menggunakan Python tidak ada di sini.
lokasi
Elemen web memiliki posisinya sendiri di halaman dan umumnya diukur dalam piksel x dan y dan dikenal sebagai koordinat (x, y) elemen. Dan objek lokasi berisi dua nilai.
ukuran
Seperti lokasi, setiap WebElement memiliki lebar dan tinggi; Tersedia sebagai objek ukuran.
Dengan menggunakan (x, y) koordinat dan lebar, nilai tinggi kita dapat memotong gambar dan menyimpannya dalam file.
Catatan: Diambil dari http://allselenium.info/capture-screenshot-element-using-python-selenium-webdriver/
sumber
Ada beberapa metode seleniumini Jawa dan ular sancaklien untuk mengambil tangkapan layar menggunakanselenium-webdriver
Metode Jawa
Berikut adalah berbagai metode Java untuk mengambil tangkapan layar :
Menggunakan
getScreenshotAs()
dari TakesScreenshot Interface:Blok Kode:
Tangkapan layar:
Jika halaman web adalah jquery diaktifkan Anda dapat menggunakanashotdari pazone / ashot library:
Blok Kode:
Tangkapan layar:
Menggunakan selenium-shutterbugdari perpustakaan assertthat / selenium-shutterbug :
Blok Kode:
Tangkapan layar:
Metode Python
Berikut adalah berbagai metode Python untuk mengambil tangkapan layar :
Menggunakan
save_screenshot()
metode:Blok Kode:
Tangkapan layar:
Menggunakan
get_screenshot_as_file()
metode:Blok Kode:
Tangkapan layar:
Menggunakan
get_screenshot_as_png()
metode:Blok Kode:
Tangkapan layar:
sumber
Python
Anda dapat mengambil gambar dari windows menggunakan driver web python. Gunakan kode di bawah ini halaman mana yang perlu menangkap tangkapan layar
sumber
Jawa
Dengan menggunakan dua metode ini, Anda dapat mengambil screenshot dengan tanggal dan waktu juga.
sumber
Jawa
Menggunakan RemoteWebDriver, setelah menambah Node dengan kemampuan tangkapan layar, saya akan menyimpan tangkapan layar seperti:
Anda dapat menggunakan metode ini di mana pun diperlukan. Lalu, saya berasumsi Anda dapat menyesuaikan style sheet dari maven-surefire-report-plugin di surefire-reports / html / custom.css sehingga laporan Anda menyertakan tautan ke tangkapan layar yang benar untuk setiap pengujian?
sumber
Jawa
Semoga ini bisa menyelesaikan masalah Anda
sumber
C #
sumber
Selen
sumber
C #
Anda dapat menggunakan potongan / fungsi kode berikut untuk mengambil tangkapan layar dengan selenium:
sumber
Anda dapat mencoba API AShot. Inilah tautan github untuk hal yang sama.
https://github.com/yandex-qatools/ashot
Beberapa tes di sini ...
https://github.com/yandex-qatools/ashot/tree/master/src/test/java/ru/yandex/qatools/elementscompare/tests
sumber
JAWA
Metode untuk Mengambil Tangkapan Layar untuk kegagalan di Selenium dengan TestName dan Timestamp ditambahkan.
sumber
C # (Ranorex API)
sumber