簡體   English   中英

使用Selenium Web Driver進行頁面拍攝

[英]Take a page shoot with Selenium Web Driver

有關使用Selenium WebDriver截屏的問題和答案,很好地描述了如何使用Selenium Web Driver使用不同的語言截屏。

我使用Python和C#以及一組不同的瀏覽器驅動程序來驅動Web驅動程序。

例如,如果使用帶有Python的PhantomJS無頭瀏覽器拍攝了屏幕截圖,我將獲得完整的頁面快照。

在C#中,沒有直接將屏幕截圖作為驅動程序方法提供,因此需要一些代碼(請參閱上述問題和建議的C#解決方案)。

但是,C#配方雖然可以完美地拍攝屏幕截圖,但並不是我想要的。

問題是C#配方需要截屏,而我正在尋找的是如何截取整頁。 屏幕快照有望在屏幕上看到,瀏覽器頁面通常大於屏幕。 在許多情況下,拍攝的照片應為分頁拍攝。

這個問題與在細節上引述的問題不同,導致結果有所不同。 我想這里歡迎使用針對不同語言的頁面拍攝解決方案。

當前WebDriver API中的屏幕截圖定義為整頁屏幕截圖。 通過WebDriver截屏時,無論使用哪種語言(Python,C#,Java等),都應該獲得完整頁面的截圖。 話雖如此,但需要注意一些注意事項。

對於IE驅動程序,如果您在64位Windows上運行,並使用32位IEDriverServer.exe ,則您會看到屏幕截圖被截斷為系統顯示分辨率的最大大小,並且所有溢出都將作為黑色部分。圖片。 這是由於Windows掛鈎過程的局限性所致,這些過程用於允許IE驅動程序創建整頁屏幕截圖。 IE驅動程序作者可以在博客文章中找到更詳細的信息。

Chrome驅動程序僅提供可見視口的屏幕截圖 這是驅動程序的已知問題,已經存在一段時間了,由於Chrome瀏覽器本身存在潛在的錯誤,因此無法修復。

Safari驅動程序的體系結構不允許使用完整的DOM屏幕截圖。 由於Safari瀏覽器提供的擴展點的性質有限,因此這種情況不太可能改變。

最后,所有有關屏幕截圖的討論僅與當前 WebDriver實現有關。 創建WebDriver規范W3C工作組已決定,屏幕截圖應僅是可見視口的 ,因此這種行為將來可能會改變,並且允許視口的屏幕截圖。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM