当前位置: 首页 > 面试题库 >

如何在Xvfb中运行Selenium?

武睿
2023-03-14
问题内容

我在EC2实例上。因此没有GUI。

$pip install selenium
$sudo apt-get install firefox xvfb

然后我这样做:

$Xvfb :1 -screen 0 1024x768x24 2>&1 >/dev/null &

$DISPLAY=:1 java -jar selenium-server-standalone-2.0b3.jar
05:08:31.227 INFO - Java: Sun Microsystems Inc. 19.0-b09
05:08:31.229 INFO - OS: Linux 2.6.32-305-ec2 i386
05:08:31.233 INFO - v2.0 [b3], with Core v2.0 [b3]
05:08:32.121 INFO - RemoteWebDriver instances should connect to: http://127.0.0.1:4444/wd/hub
05:08:32.122 INFO - Version Jetty/5.1.x
05:08:32.123 INFO - Started HttpContext[/selenium-server/driver,/selenium-server/driver]
05:08:32.124 INFO - Started HttpContext[/selenium-server,/selenium-server]
05:08:32.124 INFO - Started HttpContext[/,/]
05:08:32.291 INFO - Started org.openqa.jetty.jetty.servlet.ServletHandler@1186fab
05:08:32.292 INFO - Started HttpContext[/wd,/wd]
05:08:32.295 INFO - Started SocketListener on 0.0.0.0:4444
05:08:32.295 INFO - Started org.openqa.jetty.jetty.Server@1ffb8dc

太好了,现在一切正常,对吗?

当我运行代码时:

from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.keys import Keys

browser = webdriver.Firefox() 
browser.get("http://www.yahoo.com")

我得到这个:

Error: cannot open display: :0

问题答案:

打开终端并运行此命令 xhost +。每次重新启动计算机时都需要运行此命令。如果一切正常,可以将其添加到启动命令中

还要确保在/ etc / environment文件中有一行

export DISPLAY=:0.0

然后,运行测试以查看问题是否得到解决。

所有在使用此功能之前,请注意下面来自sardathrion的评论。



 类似资料:
  • 问题内容: 我在EC2实例上。因此没有GUI。 然后我这样做: 太好了,现在一切正常,对吗? 当我运行代码时: 我得到这个: 问题答案: 打开终端并运行此命令 。每次重新启动计算机时都需要运行此命令。如果一切正常,可以将其添加到启动命令中 还要确保在文件中有一行 然后,运行测试以查看问题是否得到解决。 在使用此功能之前,请所有人注意以下来自sardathrion的评论。

  • 使用Xvfb在LXD容器(ubuntu: 16.04)内运行GUI应用程序并在容器内执行以下命令很容易: 我的目标是在不登录的情况下执行上述命令,并在启动容器时自动执行(lxc start)。 我试图在“/etc/init.d/myscript”中创建一个脚本,并使其可执行。但没有机会,它没有工作(链接)。 另外,当我尝试执行

  • 问题内容: 我正在尝试无头运行Selenium(不显示浏览器)。其他问题已指出是执行此操作的工具。但是,它似乎非常不稳定,一直崩溃,因此我正在寻找另一种选择。 有没有非Xvfb方式运行Selenium的方式吗? 问题答案: 我认为您不运行X服务器就无法运行浏览器。 如果您不喜欢Xvfb,那么正如Pascal所说,最好的选择可能是运行VNC服务器- 我个人喜欢Xtightvnc。这意味着您正在运行一

  • 问题内容: 我正在通过显示编号:99的Xvfb运行selenium,如下所示: / usr / bin / Xvfb:99 -ac -screen 0 1024x768x8&export DISPLAY =“:99” && java -jar /usr/lib/selenium/selenium-server-standalone-2.24.1.jar -port 4444 但是,默认情况下不显示

  • 但是,在默认情况下,显示数字不是0是不可见的。我如何让它可以看到selenium在浏览器中正在做什么?

  • 如何从matlab运行clojure脚本? 我尝试了以下方法:使用jdk 1.7运行matlab,然后调用java 在matlab中,设置类路径并使用clojure编译器 这里有个错误: 当我编写运行clojure的java类时,一切都可以从控制台运行,但不能从matlab运行。请给出建议。