问题标签 [pyvirtualdisplay]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1638 浏览

python - Selenium - 无头服务器拍摄的屏幕截图图像被破坏

我正在使用 selenium webdriver(Python 版本)在网页加载后拍摄网页图像。当我转到一个页面并在本地计算机上使用 python 脚本保存图像时,它看起来很好。但是,我在服务器上运行脚本并且屏幕截图被破坏 - 边缘可能会因缺少文本而被切断,右侧的横幅可能会以混乱的方式推到底部,等等。我什至尝试最大化窗户

在服务器上,我无法在有头版本中加载 firefox,并且必须在运行 selenium 之前/之后手动启动/停止脚本中的显示

所以我认为这可能与我的显示器设置有关。

有人对如何解决这个问题有任何想法吗?谢谢

0 投票
1 回答
4510 浏览

python-2.7 - Selenium Pyvirtualdisplay 在启动时挂起

我有一个硒测试,我试图在我的 ubuntu 服务器上无头运行。它使用 pyvirtualdisplay 和 xephyr。尽管该脚本在我的本地系统中运行良好,但当我在服务器中运行它时它会挂起。我试图清除内存并重新启动服务器。但没有运气。脚本看起来像这样:

有什么帮助吗?

0 投票
2 回答
1970 浏览

python - chromedriver 无法在 ubuntu 服务器的 selenium+pyvirtualdisplay 中正确渲染 html 页面

我正在尝试通过使用 selenium 和 chromedriver 与 pyvirtualdisplay 在 Ubuntu 服务器(AWS-EC2)中呈现 HTML 页面。HTML 页面没有出现在我的 Windows PC 中。附上从 webdriver 截取的屏幕截图。


在 Windows PC 中呈现的图像

这是由 **Windows** 呈现的 HTML 的快照

使用 pyvirtualdisplay 在 Ubuntu 服务器中呈现的图像

这是 **Ubuntu** 呈现的 HTML 的快照


运行我的 python 代码时完成的基本配置(python 代码的片段) -

分辨率与我的 Windows PC 相同。

这是一个标准的用户代理。

此代码创建驱动程序

我有一个保存的 HTML 文件,我在驱动程序中打开它 - 这是 SAMPLE。

它与我在 Windows 中打开的 HTML 相同。正如您在屏幕截图中看到的那样,文本“91 个卖家评论”换行到新行。由于我正在计算这个块和其他区域的高度,它会影响我的结果。

该代码在 Windows 中就像一个魅力,给出正确的结果(高度),但在 Ubuntu 中,由于渲染本身不正确,结果也是如此。

这是我迄今为止尝试过的 -

  1. 改变显示器的分辨率。不工作。对于任何显示尺寸,屏幕截图看起来都是一样的。
  2. 更改字体、字体大小等。没有用。HTML 中的每个块都有不同的 css,所以很痛苦。
  3. 换浏览器。在 Firefox 或 Chrome 中都不起作用

我的想法不多了,如果有人分享他们的想法或经验或解决这个问题的方法,那将非常有帮助。

我知道这可能是图形驱动程序问题,Windows 有一个,但 Ubuntu 服务器没有。

请帮忙。谢谢,期待中。

编辑:图像描述。

0 投票
1 回答
3441 浏览

python - Selenium 启动的 Firefox 忽略了 pyvirtualdisplay 创建的显示

pyvirtualdisplay我在创建我的WebDriver实例之前开始显示。如果我使用 Chrome,它可以正常工作:Chrome 显示在pyvirtualdisplay创建的 Xephyr 实例中。但是,当我使用 Firefox 时,会出现 Xephyr 实例,但 Firefox 会出现在它之外。

这是完全重现该问题的代码:

上面的代码是更复杂的代码的最小版本(这解释了看似无用的FirefoxBinary())。

0 投票
1 回答
924 浏览

selenium - selenium plus pyvirtualdisplay 在 digitalocean ubuntu 液滴上不起作用

作为标题,以下内容不适用于digitalocean ubuntu droplet,但适用于我的本地计算机。所有的软件都是一样的。

它只是挂在那里。

谁能给我一些线索?非常感谢。我到处搜索,找不到任何有用的信息。

0 投票
1 回答
740 浏览

python - Amazon EC2 实例上的 pyvirtualdisplay

我正在尝试在 Amazon EC2 上运行 selenium。我使用 pyvirtualdisplay 作为 xvfb 包装器。我在 python 中运行了以下命令。

到目前为止一切都很好。
但是当我这样做时:

我收到此错误:

0 投票
1 回答
2626 浏览

python - Python从一个循环中打开多个显示窗口

今天我从社区中得到了一些很大的帮助,希望有人能在这个小家伙上让我朝着正确的方向前进。

我有一个循环,我试图加载许多不同的网页,但目前同一个网页正在不同的窗口中打开。

如何在单独的显示器中打开它们?有没有办法给显示器贴标签?

已编辑

为了改善答案,我编写了一个快速脚本来尝试加载显示到不同网页的两个不同显示,但它会在同一个窗口中加载两个网页

已编辑

我认为问题在于脚本在端口上打开了一个 xephyr 会话,然后 chrome 驱动程序只会与该会话对话,那么您可以为每个driver.get("")请求打开多个 xephyr 会话吗?

0 投票
1 回答
470 浏览

python - Ubuntu 上的 Python Selenium Firefox:新标签不起作用

我正在进行远程网络抓取和抓取,并希望不要为一页上的每个链接重新加载新的浏览器窗口。

问题是我的 Firefox Web 驱动程序没有打开新标签。

这是我尝试过的:

规格:

  • Ubuntu 14.04.2
  • Python 2.7.6
  • 硒 2.47.1
  • PyVirtualDisplay 0.1.3
0 投票
1 回答
283 浏览

python - 使用带有 pyvirtualdisplay 的剪贴板

我有一个在 pyvirtualdisplay 中运行的脚本,我需要一个复制到剪贴板的变量值。

以下作品(我的脚本的简化版本):

以下不起作用

尝试在 pyvirtualdisplay 中运行剪贴板时遇到的错误如下:

请帮忙 :)

0 投票
2 回答
31926 浏览

python - easyprocess.EasyProcessCheckInstalledError: cmd=['Xvfb', '-help'] OSError=[Errno 2] 没有这样的文件或目录

我正在尝试设置显示器,但它告诉我No such file or directory