Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在Selenium屏幕截图期间,标题栏出现在页面中间_Python_Selenium_Python Imaging Library - Fatal编程技术网

Python 在Selenium屏幕截图期间,标题栏出现在页面中间

Python 在Selenium屏幕截图期间,标题栏出现在页面中间,python,selenium,python-imaging-library,Python,Selenium,Python Imaging Library,下面是我尝试截图Facebook的地方。通常在浏览器顶部的顶部栏出现在屏幕截图的中间。 我如何隐藏它,或调整浏览器,使顶部栏保持向上和远离的方式 我使用Selenium制作屏幕截图,然后将其发送给PIL进行裁剪 请注意,当这个出现时,我可能会向下滚动很多次 您可以通过此驱动程序操作html代码,如删除导航栏的class属性。执行_脚本(“document.getElementById('blueBarNAXAnchor')。setAttribute('class','')然后它将不带样式地停留在

下面是我尝试截图Facebook的地方。通常在浏览器顶部的顶部栏出现在屏幕截图的中间。

我如何隐藏它,或调整浏览器,使顶部栏保持向上和远离的方式

我使用Selenium制作屏幕截图,然后将其发送给PIL进行裁剪

请注意,当这个出现时,我可能会向下滚动很多次


您可以通过此
驱动程序操作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代码,我甚至没有设置窗口大小。我只设置虚拟显示大小。默认情况下,浏览器以特定大小打开,即使您没有设置。您必须覆盖默认大小