如何使用node.js(Firefox或Chrome)在Heroku上运行Selenium-Webdriver

问题描述 投票:0回答:1

我想在Firefox或其他能够显示视频的浏览器上使用Heroku上的Selenium。不幸的是,PhantomJS无法使用,因为浏览器无法播放视频。


我已经通过使用这些buildpack在firefox中尝试过:

并且通过使用这些buildpack使用chrome:

但是我总是在heroku日志中得到这个:

2019-09-20T15:04:47.000000+00:00 app[api]: Build succeeded
2019-09-20T15:04:49.118915+00:00 app[web.1]: Error: Server terminated early with status 2
2019-09-20T15:04:49.118934+00:00 app[web.1]: at earlyTermination.catch.e (/app/node_modules/selenium-webdriver/remote/index.js:251:52)
2019-09-20T15:04:49.118936+00:00 app[web.1]: at process._tickCallback (internal/process/next_tick.js:68:7)

是否有一种方法可以在Heroku上通过可以显示视频格式(例如youtube上的视频)的浏览器使用硒?

我还没有找到适合我的解决方案。


UPDATE

如果尝试answser,将显示相同的错误:

const chrome = require('selenium-webdriver/chrome');

let options = new chrome.Options();

options.addArguments('--headless');
options.addArguments('--disable-gpu');
options.addArguments('--no-sandbox');

let driver = new webdriver.Builder()
  .forBrowser('chrome')
  .setChromeOptions(options)
  .build();

driver.get('http://www.google.com').catch(err => console.log(err));
node.js selenium firefox heroku browser
1个回答
0
投票

我的选择,也许可能会有所帮助:

const screen = {
  width: 1920,
  height: 1080
};

let options = new chrome.Options();
//Below arguments are critical for Heroku deployment
options.addArguments("--headless");
options.addArguments("--disable-gpu");
options.addArguments("--no-sandbox");
options.windowSize(screen);

我认为窗口大小是强制性的,否则您正在模拟无边界窗口...

© www.soinside.com 2019 - 2024. All rights reserved.