linux - headless with rails selenium-webdriver 通过 linux 服务器获取网页屏幕

标签 linux ruby-on-rails-4 selenium headless-browser

我用

gem 'selenium-webdriver'

通过我的 linux 服务器使用 rails 截取网页:

def test
  width = 1024
  height = 728
  driver = Selenium::WebDriver.for :firefox
  driver.navigate.to 'http://google.fr'
  driver.execute_script %Q{
   window.resizeTo(#{width}, #{height});
  }
  driver.save_screenshot("#{Rails.root}/screenshot.png")
  driver.quit
end

我需要在没有显示的情况下在我的服务器上不安装浏览器的情况下执行此操作。

如何在 headless 模式中执行此操作?

最佳答案

您可以在 selenium 上进行 headless 测试。为此,您需要 Xvfb 和 Firefox。在 Ubuntu 上:

sudo apt-get install xvfb
sudo apt-get install firefox

然后您需要使用一些显示编号运行 xvfb(最好使用较大的编号以避免冲突):

sudo Xvfb :99 -ac

使用与您启动 Xvfb 相同的编号导出环境变量 DISPLAY。如果你没有在后台运行 xvfb,你将需要另一个终端:

export DISPLAY=:99

现在尝试运行您的代码

关于linux - headless with rails selenium-webdriver 通过 linux 服务器获取网页屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28255392/

相关文章:

c# -/usr/share/dotnet/sdks/microsoft.docker.sdk/sdk/sdk.props 找不到

css - 每行四个产品 Bootstrap/ROR 停止使用添加的信息?

python - 在python中使用selenium获取所有href链接

java - 如何在 Selenium Java 中转换 Katalon 脚本?

firefox - 如何禁用 Firefox 安全模式...任何可能的方式

linux - .got 和 .got.plt 部分有什么区别?

java - 运行 strace 并使用 Java 获取输出

linux - memory.oom_control 哪个版本是 Linux 内核的一部分?

ruby-on-rails - Rails 未定义方法 `map' for nil :NilClass - form collection_select

Heroku 预编译 Assets 在 Rail 4 应用程序上失败