簡體   English   中英

Selenium Webdriver僅獲取視口的屏幕截圖

[英]Selenium Webdriver take screenshot of viewport only

我只需要當前視口的屏幕截圖,尤其要注意滾動位置。 基本上是當前Chrome驅動程序的功能。

從我所閱讀的內容看來,這應該是完全有可能的,但是由於某些原因,screenshot命令始終努力獲取完整的文檔截圖。 實際上,IE驅動程序會拍攝多個視口鏡頭,然后將它們縫合在一起。

我使用的是Ruby Webdriver,無論如何我都看不到僅截取視口的屏幕截圖。 可能嗎?

在處理WebDriver時,有兩個相互競爭的“屏幕快照”定義。 第一個是開放源代碼項目使用的定義,其中屏幕快照定義為加載頁面的整個DOM的圖像。 在這種情況下,自2010年以來,IE驅動程序和Firefox驅動程序都在執行項目定義的正確操作。WebDriver的Chrome實施錯誤地返回了僅可見端口的圖像。

另一方面, W3C WebDriver規范將屏幕快照定義為僅當前視口。 這與當前的開放源代碼項目的驅動程序實現(IE和Firefox)不一致,並且可以預期在將來發生變化。 規范達到“候選推薦”狀態后,可能會更新那些驅動程序。

順便說一句 ,應該注意的是,IE驅動程序絕不使用“滾動拼接”方法來創建其屏幕截圖。 確實將瀏覽器窗口調整為足以顯示整個DOM的大小,以顯示整個DOM(如在請求屏幕快照時計算的那樣),並拍攝圖像。 但是,請注意,根據操作系統和所使用的IEDriverServer可執行文件的位數 ,生成完整的DOM屏幕截圖時,IE 10和11存在問題。

目前,您需要使用WebDriver外部的工具來獲取IE和Firefox的僅查看端口的屏幕​​截圖。

這是一個經常更改的問題。

AFAIK現在,Chrome-和IEDriver都僅捕獲視口的屏幕截圖,而FFDriver則捕獲全頁面的屏幕截圖(FF將來會對此進行更改)。 另請參閱我對這個問題的回答

暫無
暫無

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

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