Skip to content

Instantly share code, notes, and snippets.

@kevinsawicki
Last active December 4, 2015 22:17
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kevinsawicki/a7f87097a8edcdfb43b7 to your computer and use it in GitHub Desktop.
Save kevinsawicki/a7f87097a8edcdfb43b7 to your computer and use it in GitHub Desktop.
Require issue
node_modules

Require issue with ChromeDriver

Steps to reproduce:

  • Run npm install
  • Run chromedriver --url-base=wd/hub --port=9515 to start ChromeDriver
  • Run ./run.sh to see it working when launched directly
  • Run ./test.sh to see it fail when launched via ChromeDriver
<!DOCTYPE html>
<html lang="en">
<head>
<script type="text/javascript">
function requireElectron() {
try {
require('electron')
document.write('require(\'electron\') succeeded')
} catch (error) {
document.write('require(\'electron\') failed')
document.write('<pre>' + error.stack + '</pre>')
}
}
</script>
</head>
<body onload="requireElectron()">
</body>
</html>
var app = require('app')
var BrowserWindow = require('browser-window')
var fs = require('fs')
var http = require('http')
var path = require('path')
var server = http.createServer(function (request, response) {
if (request.url === '/index.html') {
response.writeHead(200, {'Content-Type': 'text/html'})
response.end(fs.readFileSync(path.join(__dirname, 'index.html')))
} else {
response.writeHead(404)
response.end()
}
})
app.on('ready', function () {
server.listen(8000, '127.0.0.1', function () {
var mainWindow = new BrowserWindow({
width: 640,
height: 480,
title: 'Require issue'
})
mainWindow.loadURL('http://127.0.0.1:8000/index.html')
})
});
app.on('will-quit', function () {
server.close()
})
{
"name": "require-failure-using-chromedriver",
"version": "1.0.0",
"main": "main.js",
"dependencies": {
"electron-chromedriver": "^0.35.0",
"electron-prebuilt": "^0.35.4",
"webdriverio": "^3.3.0"
}
}
#!/usr/bin/env bash
set -ex
mkdir -p node_modules/electron-prebuilt/dist/Electron.app/Contents/Resources/app
cp index.html node_modules/electron-prebuilt/dist/Electron.app/Contents/Resources/app
cp main.js node_modules/electron-prebuilt/dist/Electron.app/Contents/Resources/app
cp package.json node_modules/electron-prebuilt/dist/Electron.app/Contents/Resources/app
open node_modules/electron-prebuilt/dist/Electron.app
var path = require('path')
var webdriverio = require('webdriverio')
var options = {
host: "localhost",
port: 9515,
desiredCapabilities: {
browserName: 'chrome',
chromeOptions: {
binary: path.join(__dirname, 'node_modules', '.bin', 'electron')
}
}
}
var client = webdriverio.remote(options)
client.init()
#!/usr/bin/env bash
set -ex
mkdir -p node_modules/electron-prebuilt/dist/Electron.app/Contents/Resources/app
cp index.html node_modules/electron-prebuilt/dist/Electron.app/Contents/Resources/app
cp main.js node_modules/electron-prebuilt/dist/Electron.app/Contents/Resources/app
cp package.json node_modules/electron-prebuilt/dist/Electron.app/Contents/Resources/app
node test.js
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment