linux机器上的headless firefox浏览器是不是需要设置DISPLAY
Posted
技术标签:
【中文标题】linux机器上的headless firefox浏览器是不是需要设置DISPLAY【英文标题】:Is it required to set the DISPLAY for headless firefox browser on linux machinelinux机器上的headless firefox浏览器是否需要设置DISPLAY 【发布时间】:2019-02-23 09:23:48 【问题描述】:我想运行无头浏览器,下面是相同的代码。 但是,当我运行它时。它显示“错误:未指定 DISPLAY 环境变量”
try
FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("webdriver.log.driver", "INFO");
profile.setPreference("webdriver.log.file", targetDir + File.separator + "firefoxSeleniumServer.log");
profile.setPreference("browser.download.folderList",2);
profile.setPreference("browser.download.manager.showWhenStarting",false);
profile.setPreference("browser.helperApps.neverAsk.saveToDisk","text/csv;text/plain");
if(platform.equalsIgnoreCase("linux"))
DesiredCapabilities desiredCap = DesiredCapabilities.firefox();
profile.setPreference("browser.download.dir",System.getProperty("user.dir")+ File.separator + "target");
System.setProperty("webdriver.gecko.driver", "/test/geckodriver/geckodriver");
System.setProperty("webdriver.firefox.bin","/usr/bin/firefox/firefox");
desiredCap.setCapability("headless", true);
driver = new FirefoxDriver();
但是,当我设置显示时,它显示无法在 DISPLAY:99 上打开 firefox
我也尝试设置 xvfb。但这也没有用。
由于我在这里使用 gekco 驱动程序,我是否需要进行更多配置。
【问题讨论】:
您完成了创建配置文件和功能的所有工作,但是您在不使用它们的情况下实例化了 FirefoxDriver()! 【参考方案1】:我认为您应该将DesiredCapabilities
对象作为参数提供给FirefoxDriver
构造函数:
参考文献
javadoc 对应于FirefoxDriver
。
What is the use of DesiredCapabilities in Selenium WebDriver?
【讨论】:
不推荐使用上面的 selenium3。我也尝试过关注,但仍然面临同样的问题。binary = new FirefoxBinary(new File("/bin/firefox/firefox")); options.setBinary(binary); driver = new FirefoxDriver(options);
但是您是否尝试过使用已弃用的类?以上是关于linux机器上的headless firefox浏览器是不是需要设置DISPLAY的主要内容,如果未能解决你的问题,请参考以下文章
Windows与Linux(硒)上的Chrome和Firefox
Firefox headless 不能在 Docker 中以非 root 用户身份工作