在ubuntu 18.04上正确配置selenium-webdriver geckodriver?

时间:2018-10-08 19:01:01

标签: node.js selenium firefox selenium-webdriver path

我正在使用硒在节点上执行特定的抓取工作,并且代码在本地Mac上成功运行。但是,我正在尝试在演示Google Compute vm实例上执行相同操作,并且不确定如何正确配置geckodriver。有人可以引导我吗?

这是我得到的输出:

/home/dee_m316/node_modules/selenium-webdriver/firefox:1
(function (exports, require, module, __filename, __dirname) { ELF
                                                              ^
SyntaxError: Invalid or unexpected token
    at createScript (vm.js:80:10)
    at Object.runInThisContext (vm.js:139:10)
    at Module._compile (module.js:617:28)
    at Object.Module._extensions..js (module.js:664:10)
    at Module.load (module.js:566:32)
    at tryModuleLoad (module.js:506:12)
    at Function.Module._load (module.js:498:3)
    at Module.require (module.js:597:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/home/dee_m316/node_modules/selenium-webdriver/index.js:32:17)

代码很好,但是我觉得它试图将我的geckodriver读取为文件而不是可执行文件或类似问题。它要么就是那个,要么不在我的路上。

代码/

const {Builder, By, Key, until} = require('selenium-webdriver');
var sleep = require('sleep');
const firefox = require('selenium-webdriver/firefox');

  const screen = {width: 640, height: 480}; //size of headerless browser
  let driver = await new Builder().forBrowser('firefox').setFirefoxOptions(new firefox.Options().headless().windowSize(screen)).build(); //for headerless mode

我的操作系统是Ubuntu 18.04.

My code runs in the /home/dee_m316/j.js#目录 有一个与脚本处于同一级别的geckodriver,并且已复制到:

/home/dee_m316/node_modules/selenium-webdriver/geckodriver
/home/dee_m316/node_modules/selenium-webdriver/firefox
/home/dee_m316/node_modules/selenium-webdriver/firefox.exe

我尝试过:

export PATH="$PATH":/home/dee_m316/node_modules/selenium-webdriver/

node j.js --binary /home/deep_m316/node_modules/selenium-webdriver/firefox.exe

,但错误是相同的。怎么了?

1 个答案:

答案 0 :(得分:1)

firefox.exe是为 Windows 构建的Firefox二进制文件的名称...您正试图在Linux系统上运行它。

解决方案是在您的平台上使用适当版本的Firefox和geckodriver。