2015-11-07 29 views
0

我正在使用Selenium webdriver。我試圖在無頭模式下運行我的代碼,但每次我調用它時,Firefox仍會在我的機器上打開。這裏是我正在運行的代碼:在無頭模式下運行webdrive,Firefox仍在啓動

@headless = Headless.new 
    @headless.start  

    @profile = Selenium::WebDriver::Firefox::Profile.new 
    if @use_proxy 
    p = "#{@proxy}:#{@proxy_port}" 
    @profile.proxy = Selenium::WebDriver::Proxy.new(
     :http  => p, 
     :ftp  => p, 
     :ssl  => p 
    ) 
    end 
    @profile['general.useragent.override'] = @user_agent_string 
    @profile["browser.privatebrowsing.autostart"] = true 
    @driver = Selenium::WebDriver.for :firefox, :profile => @profile 
+0

您是否在Linux上運行,並且您是否安裝了xvfb? – titusfortner

回答

0

正如在評論中提到的,你需要使用xvfb來防止你在linux上運行。

最近我在這裏描述的那樣:https://stackoverflow.com/a/33563013/1199731

你可以嘗試在你的命令行只是打字firefox啓動Firefox。 如果失敗,例如Can't find/open display on 0.0或smth。像這樣,你應該使用XVFB:

這是一個描述如何使用XVFB。

sudo apt-get update 
sudo apt-get install firefox xvfb 
sudo Xvfb :10 -ac 
export DISPLAY=:10 

現在,您可以嘗試使用firefox啓動Firefox並嘗試運行您的程序。

我不知道ruby WebDriver API,但在Java中有FirefoxBinary.setEnvironmentProperty,您可以調用("DISPLAY", ":10")以編程方式設置環境變量。

相關問題