我正在使用硒在节点上执行特定的抓取工作,并且代码在本地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
,但错误是相同的。怎么了?
答案 0 :(得分:1)
firefox.exe
是为 Windows 构建的Firefox二进制文件的名称...您正试图在Linux系统上运行它。
解决方案是在您的平台上使用适当版本的Firefox和geckodriver。