Я использую проект vue-cli (в котором установлен электронный + seleniumWebDriver), запускаю тесты с ChromeDriver.
Я продолжаю запускать chromedriver (который установлен в моем проекте vue-cli), затем я запускаю тестовый файл 'node ff.js'.
Приложение Electron запускалось на экране, но ничего не происходило. Затем дождитесь завершения процесса, результатом станет ошибка «UnhandledPromiseRejectionWarning: WebDriverError: неизвестная ошибка: файл DevToolsActivePort не существует».
Я искал в интернете его и нашел решение, которое, как утверждают другие, работает нормально. Просто добавьте «--disable-dev-shm-Использование» к параметрам Chrome. Но это все равно ошибка.
ff.js
const webdriver = require('selenium-webdriver')
const chrome = require('selenium-webdriver/chrome');
const driver = new webdriver.Builder()
// The "9515" is the port opened by chrome driver.
.usingServer('http://localhost:9515')
.withCapabilities({
chromeOptions: {
args: ['--headless', '--disable-gpu', '--no-sandbox', '--disable-extensions', '--disable-dev-shm-usage', 'start-minimized'],
// Here is the path to your Electron binary.
binary: './dist_electron/mac/myapp.app/Contents/MacOS/myapp'
}
})
.setChromeOptions(new chrome.Options().addArguments('--remote-debugging-port=7070'))
.forBrowser('electron')
.build()
driver.quit()
package.json
"devDependencies": {
"@types/chai": "^4.1.0",
"@types/mocha": "^5.2.4",
"@vue/cli-plugin-babel": "^3.5.0",
"@vue/cli-plugin-e2e-nightwatch": "^3.6.0",
"@vue/cli-plugin-eslint": "^3.5.0",
"@vue/cli-plugin-typescript": "^3.5.0",
"@vue/cli-plugin-unit-mocha": "^3.5.0",
"@vue/cli-service": "^3.5.0",
"@vue/eslint-config-standard": "^4.0.0",
"@vue/eslint-config-typescript": "^4.0.0",
"@vue/test-utils": "1.0.0-beta.29",
"babel-eslint": "^10.0.1",
"babel-plugin-istanbul": "^5.1.3",
"bootstrap": "^4.3.1",
"chai": "^4.1.2",
"chromedriver": "^73.0.0",
"copy-webpack-plugin": "^5.0.2",
"electron": "^4.0.0",
"electron-rebuild": "^1.8.4",
"eslint": "^5.8.0",
"eslint-plugin-vue": "^5.0.0",
"jquery": "^3.4.0",
"mocha": "^6.1.4",
"mochawesome": "^3.1.2",
"node-sass": "^4.9.0",
"nyc": "^14.0.0",
"popper.js": "^1.15.0",
"sass-loader": "^7.1.0",
"selenium-webdriver": "^4.0.0-alpha.1",
"ts-node": "^8.1.0",
"ts-protoc-gen": "^0.9.0",
"typescript": "^3.2.1",
"vue-cli-plugin-electron-builder": "^1.2.0",
"vue-template-compiler": "^2.5.21",
"vuex-module-decorators": "^0.9.8",
"webdriverio": "^5.8.3"
}
пс. Я пытался с ChromeDriver@74.x.x, это все равно привело к той же ошибке.
На самом деле, я попробовал с Selenium RobotFramework и все еще нашел ту же ошибку. Я думаю, что-то было не так с моим тестовым письмом или некоторыми настройками. (Я не очень хорош в тестовом инструменте.)
Только для информации
mytest.robot
*** Settings ***
Library Selenium2Library
Variables vars.py
*** Test Cases ***
Foohaha
Create Webdriver Remote desired_capabilities=${binary_location} command_executor=http://localhost:9515
Log To Console ${item.get_attribute('innerHTML')}
[Teardown] Close All Browsers
P.s. Причиной, почему не Spectron, является тестер, которым я пользуюсь только Selenium.