我正在使用 bash 脚本启动 Selenium 服务器,正如您从下面日志中的时间戳中看到的那样,这件事需要大约 32 秒才能完全上线:
Feb 28, 2012 10:19:02 PM org.openqa.grid.selenium.GridLauncher main
INFO: Launching a standalone server
22:19:02.835 INFO - Java: Sun Microsystems Inc. 20.0-b11
22:19:02.836 INFO - OS: Linux 2.6.32-220.4.1.el6.x86_64 amd64
22:19:02.852 INFO - v2.19.0, with Core v2.19.0. Built from revision 15849
22:19:02.988 INFO - RemoteWebDriver instances should connect to: http://127.0.0.1:4444/wd/hub
22:19:02.990 INFO - Version Jetty/5.1.x
22:19:02.992 INFO - Started HttpContext[/selenium-server/driver,/selenium-server/driver]
22:19:02.993 INFO - Started HttpContext[/selenium-server,/selenium-server]
22:19:02.993 INFO - Started HttpContext[/,/]
22:19:34.552 INFO - Started org.openqa.jetty.jetty.servlet.ServletHandler@488e32e7
22:19:34.552 …Run Code Online (Sandbox Code Playgroud) 一个主要的缺点curl是越来越多的网页的主要内容是由在初始 HTTP 响应之后发生的 JavaScript AJAX 响应绘制的。curl从不接受这个后期绘制的内容。
因此,为了从命令行获取这些类型的网页,我只能用 Ruby 编写脚本来驱动 SeleniumRC 启动 Firefox 实例,然后在这些 AJAX 调用完成后返回源 HTML。
为此类问题提供更精简的命令行解决方案会好得多。有谁知道吗?
我正在尝试通过 SSH 通过 Selenium 在远程机器(运行 Ubuntu 16.04)上执行无头 Firefox。但是,这给了我一个“错误:GDK_BACKEND 与可用显示不匹配”的错误。我的主机运行 Windows。我不想看到图形输出。它只是用于硒测试。
我使用 X Virtual Frame Buffer 作为虚拟驱动程序:
Xvfb :10 -screen 0 1024x768x16 &
Run Code Online (Sandbox Code Playgroud)
对于这种特定情况,我还导出了值为 10 的 DISPLAY 环境变量。
我哪里错了?
编辑:当我在运行 xvbf 后通过 SSH 在我的命令行中简单地运行“sudo firefox”时,不会抛出任何错误。只有在通过 selenium 运行 Firefox 时才会抛出错误。
更多细节:-
我正在通过 selenium 调用 firefox。selenium 独立服务器给出的确切错误是:-
17:52:55.218 INFO - Executing: [new session: Capabilities [{browserName=firefox, platform=ANY, firefox_profile=UEsDBBQAAAAAAJuOD0nf9RXUMgAAA...}]])
17:52:55.230 INFO - Creating a new session for Capabilities [{browserName=firefox, platform=ANY, firefox_profile=UEsDBBQAAAAAAJuOD0nf9RXUMgAAA...}]
org.openqa.selenium.firefox.NotConnectedException: Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms. Firefox …Run Code Online (Sandbox Code Playgroud)