请参阅下面我尝试截图Facebook的地方。顶部栏通常位于浏览器的顶部,显示在屏幕截图的中间。
如何隐藏它,或者调整浏览器以使顶部栏保持不变?
我使用Selenium进行截图,然后将其发送给PIL进行裁剪。
请注意,出现这种情况时,我可能会向下滚动很多方式。
答案 0 :(得分:4)
您可以通过此driver.execute_script("document.getElementById('blueBarNAXAnchor').setAttribute('class', '')")
来操纵html代码,例如删除导航栏的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
答案 1 :(得分:2)
可能与浏览器没有以最大尺寸打开的事实有关。
尝试在初始化时调用driver.maximize_window()
一次,然后再使用driver.get
和driver.save_screenshot
。
答案 2 :(得分:2)
您应该reduce
窗口大小,而不是增加窗口大小。将窗口高度设置为小于500像素,并将顶部栏放在屏幕截图中。
这是因为当浏览器高度低于500px时,顶部栏会从视图中消失。在此高度之上,顶部栏显示在悬停在新闻源上的浏览器视图端口中。您也可以手动尝试。
<强> JAVA 强>
driver.manage().window().setSize(new Dimension(1024, 500));
<强> PYTHON 强>
driver.set_window_size(300, 500)
以上代码在JAVA中。但我相信你可以找出python的等价物。
注意:我的屏幕分辨率为1366x768。所以500px的值可能会有所不同。但你肯定要降低身高。