问题标签 [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 投票
0 回答
450 浏览

python - pyvirtualdisplay:更改可见性

我想打开/关闭使用创建的显示的可见性pyvirtualdisplay,或者将其最小化并使用 python 将其带回屏幕。

不幸的是,似乎没有办法做到这一点,并且display.visible在显示器初始化后进行更改是没有效果的。有什么方法可以做到这一点,也许使用一些替代包?

最后,我想隐藏和显示一个通过selenium.

0 投票
1 回答
1150 浏览

python - Selenium 不能在服务器上工作,因为它在本地机器上工作

我最近完成了我的 Selenium Python 刮板。当我在我的个人机器上运行它时它工作得很好,但是当我在服务器上运行它时结果不一样。在服务器上,我正在使用无头运行pyvirtualdisplay

这是我的 pyvirtualdisplay 代码。

在本地机器上运行时,它完全抓取了由 JavaScript 生成的 HTML,但是当我在我的服务器上运行它时,它不会抓取由 JavaScript 生成的 HTML 内容,所以我最终只得到了一个没有 JS 的部分页面生成的内容。

更新: 我还根据使用 Selenium 的建议截取了屏幕截图。截图显示页面部分加载,JS的内容没有加载到屏幕上。

0 投票
1 回答
156 浏览

python - AWS-EC2 或 Pythonanywhere 等服务上的 selenium 驱动程序的最大数量是多少

使用 python-selenium 和 pyvirtualdisplay,我想在远程服务器上同时打开大约 10 个不同的 Firefox 浏览器。但是,在 AWS 和 pythonanywhere 上,firefox 驱动程序在打开的第五个窗口左右开始抛出异常:

WebDriverException:消息:浏览器似乎在我们可以连接之前已经退出

我永远无法在任何一项服务上同时打开超过 5 个或 6 个窗口。这是一个内存问题(弹性架构不是要解决这个问题吗?)?虚拟显示库的限制?

如果我尝试在我的(非常)旧笔记本电脑上本地打开多达 15 个窗口,似乎没有问题。无论如何,在不使用多个帐户的情况下解决这个问题?这是我要执行的代码:

0 投票
1 回答
293 浏览

python - 使用 python、selenium 和 pyvirtualdisplay 无法单击 Web 元素

我有一个简单的网络爬虫,它可以登录 Twitter,进入下一页,然后通过单击齿轮图标从我的所有关注者(如果他们被静音等)那里获取信息。问题是单击功能已停止在我的新计算机上运行。

另外,我正在使用 Firefox() 网络驱动程序。

这是我正在使用的代码(您需要为 Twitter 添加自己的凭据才能使其正常工作):https ://gist.github.com/anonymous/4c64054d01af77ae2c5c2b39a2165d80

这段代码在一台机器上运行良好,但无法在另一台机器上单击 dom 元素。以下是一些可能提供洞察力的规格。

当我在“坏框”上运行此代码并且不捕获异常时,我得到以下信息:

0 投票
0 回答
458 浏览

python - pyvirtualdisplay (xvfb) 的两个实例不会同时运行

所以我有一个小脚本,它使用 pyvirtualdisplay 制作一个虚拟显示器来运行一些硒测试。我已经在我的 Windows 计算机上测试了相同的代码,并且两者同时运行得很好。这让我相信问题出在 pyvirtualdisplay 上。看了这里之后,有几个人和我有同样的问题,但没有一个人真正得到解决,所以我真的希望你们中的一个人能在这里帮助我。

从 selenium 导入 webdriver 从 pyvirtualdisplay 导入显示

在 python 中执行此操作。所以是的,任何帮助将不胜感激。

引发错误

0 投票
0 回答
79 浏览

python - Pyvirtualdisplay 不喜欢文本

我想从网页中获取一些文本,selenium但是当我使用pyvirtualdisplay包并编写如下代码时:

它打印一个空字符串。如果我不使用pyvirtualdisplay,做同样的事情,它可以正常工作并显示正确的字符串。为什么会发生这种情况,我该如何解决?

0 投票
1 回答
844 浏览

python - 无法在 Suse Linux 上安装 Xvfb

我正在尝试使用 Suse 11.4(64 位)上的 python 库运行 selenium-webdriver 为了让它无头运行,它需要另一个 python 包“pyvirtualdisplay”才能运行。我已经能够完美地安装两者。现在的问题是 pyvirtualdisplay 需要一个未安装的名为 Xvfb 的系统级包。Zypper 不可用,我需要使用 tarball 或 rpm 安装它。请指导我如何安装这个库以及在哪里可以找到它。我一直找不到合适的 Xvfb 包,可以安装在这个 Linux 发行版上。

0 投票
1 回答
2996 浏览

python - 几次运行后无头脚本崩溃

我有一个使用无头浏览器的脚本,我正在使用crontab -e. 它在前几次运行良好,然后因以下 Traceback 而崩溃:

我的 crontab 行是:

我不想用 python 脚本重载它,所以我已经提取了我认为相关的部分。

非常感谢您的帮助。

编辑

版本:Firefox 49.0.2;硒:3.0.1;geckodriver:geckodriver-v0.11.1-linux64.tar.gz

围绕错误的代码(失败driver.get(url)):

0 投票
0 回答
557 浏览

python - Selenium 3 chrome headless 在 Ubuntu 16.04.3 中不起作用

当我尝试使用 chrome 无头浏览器时出现以下错误。我无法找到正确的错误

错误跟踪:

0 投票
1 回答
921 浏览

python - Xvfb 多显示器同时截屏

我有一个要求,我正在运行一个 selenium 脚本,该脚本在一台机器上打开 2 个 Firefox 实例。我想同时截取两个实例的屏幕截图。同一时间部分很重要。

我使用以下步骤来模拟这个:

  1. 使用启动 2 个不同的显示器Xvfb -ac :99 and Xvfb -ac :100
  2. 我有 2 个 python 脚本,它们分别将环境变量 DISPLAY 设置为 99 和 100。

这是python脚本: screenshot99.py

screenshot100.py

我有两个问题:

  1. 是否可以同时截取 2 个不同的浏览器实例?
  2. 如果是,我该如何模拟?我只需要一个概念证明来证明上述事实。