Python 在Selenium屏幕截图期间,标题栏出现在页面中间
下面是我尝试截图Facebook的地方。通常在浏览器顶部的顶部栏出现在屏幕截图的中间。 我如何隐藏它,或调整浏览器,使顶部栏保持向上和远离的方式 我使用Selenium制作屏幕截图,然后将其发送给PIL进行裁剪 请注意,当这个出现时,我可能会向下滚动很多次Python 在Selenium屏幕截图期间,标题栏出现在页面中间,python,selenium,python-imaging-library,Python,Selenium,Python Imaging Library,下面是我尝试截图Facebook的地方。通常在浏览器顶部的顶部栏出现在屏幕截图的中间。 我如何隐藏它,或调整浏览器,使顶部栏保持向上和远离的方式 我使用Selenium制作屏幕截图,然后将其发送给PIL进行裁剪 请注意,当这个出现时,我可能会向下滚动很多次 您可以通过此驱动程序操作html代码,如删除导航栏的class属性。执行_脚本(“document.getElementById('blueBarNAXAnchor')。setAttribute('class','')然后它将不带样式地停留在
您可以通过此
驱动程序操作html代码,如删除导航栏的class属性。执行_脚本(“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
这可能与浏览器未以最大大小打开有关
尝试调用
驱动程序。在使用驱动程序之前,请在初始化时最大化\u window()
一次。获取和驱动程序。保存\u屏幕截图
而不是增加窗口大小。您应该减小窗口大小。将窗口高度设置为小于500px,顶部栏将放置在屏幕截图中它应该位于的位置
这是因为当浏览器高度低于500px时,顶部栏将从视图中消失。高于此高度时,顶部栏将显示在浏览器视图端口中,悬停在新闻提要上。您也可以手动尝试
JAVA
driver.manage().window().setSize(new Dimension(1024, 500));
PYTHON
driver.set_window_size(300, 500)
上面的代码是用JAVA编写的。但是我相信你可以找到python的等价物
注:我的屏幕分辨率为1366x768。所以500px的值可能会有所不同。但是你一定要降低高度 不是我,但我把它设置为(1366768)。这还不够吗?这可能是一些屏幕大小问题,因此我认为最大化并允许高分辨率/不同分辨率可能会有所帮助?可能是一些不幸的屏幕大小问题,您可以向我们展示您的代码吗?硒测试?我可以在顶部的栏中截图。我有一个最小化的浏览器。请注意,当它出现时,我可能会向下滚动很多次。得到了这个问题。我可能有个解决办法。检查我的答案。好的,那么基本上让窗口的大小比屏幕的大小小一点?我使用的是虚拟显示器(Xvfb),所以我可以调整一切。不需要调整虚拟显示器。只需调整浏览器大小(降低高度)。上面发布的JavaSelenium代码就是这样做的。我将尝试更新所需的python代码。我刚才注意到的python代码,我甚至没有设置窗口大小。我只设置虚拟显示大小。默认情况下,浏览器以特定大小打开,即使您没有设置。您必须覆盖默认大小