2015-10-15 25 views
4

請參閱下面我試圖截取Facebook的地方。通常位於瀏覽器頂部的頂部欄出現在屏幕截圖的中間。標題欄在Selenium屏幕截圖期間出現在頁面中間

我該如何隱藏它或調整瀏覽器,使頂欄保持不動?

我用Selenium截圖然後我把它發送到PIL讓它裁剪。

請注意,當出現這種情況時,我可能會以相當的方式向下滾動。

enter image description here

+0

你能告訴我們你的代碼嗎?硒測試? – Uri

+0

我能夠在它應該是的頂欄上截屏。我有一個最小化的瀏覽器。 – Sighil

+0

@Striker請注意,當出現這種情況時,我可能會以相當的方式向下滾動。 – User

回答

4

你可以操縱的HTML代碼,就像這個driver.execute_script("document.getElementById('blueBarNAXAnchor').setAttribute('class', '')")刪除導航欄的類屬性則停留在頁面的開頭沒有風格。那麼你可以在沒有它的情況下截圖。見下面,檢查face_1.png:

>>> driver.save_screenshot("face.png") 
True 
>>> driver.execute_script("document.getElementById('blueBarNAXAnchor').setAttribute('class', '')") 
>>> driver.save_screenshot("face_1.png") 
True 

enter image description here

2

有可能它的事實,該瀏覽器是不是最大尺寸開做。

在使用driver.getdriver.save_screenshot之前,嘗試在初始化時調用driver.maximize_window()

+0

Downvoter ...謹慎解釋? – PascalVKooten

+0

不是我,但我確實將它設置爲(1366,768)。這還不夠嗎? – User

+0

這可能是一些screenize問題,因此我認爲最大化和允許高分辨率/不同的分辨率可以幫助? – PascalVKooten

2

而不是增加窗口大小你應該reduce窗口大小。將窗口高度設置爲小於500px,並將頂部欄放置在應該顯示的屏幕截圖中。

這是因爲當瀏覽器高度低於500像素時,頂部欄從視圖中消失。在此高度之上,頂部橫條出現在懸停在新聞Feed上的瀏覽器視圖端口中。你也可以手動嘗試。

JAVA

driver.manage().window().setSize(new Dimension(1024, 500)); 

PYTHON

driver.set_window_size(300, 500) 

上面的代碼是在JAVA。但我相信你可以找出相當於python的東西。

注:我有一個1366x768的屏幕分辨率。所以500px的值可能會有所不同。但你一定要降低身高。

+0

好吧,基本上使窗口尺寸比屏幕尺寸稍小?我正在使用虛擬顯示器(Xvfb),所以我可以調整一切。 – User

+0

無需調整虛擬顯示器。只需調整瀏覽器大小(降低高度)即可。上面發佈的Java Selenium代碼就是這樣做的。我會嘗試更新所需的python代碼。 – Sighil

+0

Python代碼http://stackoverflow.com/questions/13571349/i-need-selenium-to-open-its-web-browser-in-a-larger-resolution-preferably-max http://stackoverflow.com/問題/ 15397483 /我如何設置瀏覽器寬度和高度在selenium-webdriver – Sighil

相關問題