[英]How to take screenshot in selenium webdriver with ruby with date and time included in screenshot name?
[英]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.