我如何获得硒来打开我的电子应用程序?
How do I get selenium to open my electron app?
我正在尝试设置 Selenium 来测试我的电子应用程序。到目前为止,我有 Electron 文档中的代码,但是,这只会打开 HTML 文件,而不是我的实际应用程序。这是我的代码:
import * as path from "path";
const webdriver = require('selenium-webdriver');
const driver = new webdriver.Builder()
// The "9515" is the port opened by ChromeDriver.
.usingServer('http://localhost:9515')
.withCapabilities({
'chromeOptions': {
// Here is the path to your Electron binary.
binary: '../../node_modules/electron/dist/electron.exe'
}
})
.forBrowser('chrome')
.build();
const current_path = path.join(__dirname, "../../dist/public/index.html");
driver.get('file://' + current_path);
我怎样才能让它打开我的应用程序?
几天来我一直在努力解决这个问题,所有其他文章和 Whosebug 帖子要么指向 Spectron(现已弃用),要么没有解释如何打开我自己的应用程序而不是不同的网站。
编辑:我发现在 chromeOptions 对象中添加 "args": ['--app=PATH_TO_PROJECT_DIR')]
,并将名称更改为 "goog:chromeOptions"
,使其打开到正确的文件路径,但是,现在我收到以下错误:
WebDriverError: unknown error: no chrome binary at ../../node_modules/electron/dist/electron.exe
改回“chromeOptions”会阻止它打开应用程序目录,但会打开一个空白 chrome window.
解决方案是:
- 将
'../../node_modules/electron/dist/electron.exe'
替换为path.join(__dirname, '../../node_modules/electron/dist/electron.exe')
- 将
chromeOptions
更改为goog:chromeOptions
- 将
"args": [path.join(__dirname, '../../')]
添加到goog:chromeOptions对象。
工作代码:
import * as path from "path";
const webdriver = require('selenium-webdriver');
const driver = new webdriver.Builder()
// The "9515" is the port opened by ChromeDriver.
.usingServer('http://localhost:9515')
.withCapabilities({
'goog:chromeOptions': {
// Here is the path to your Electron binary.
"binary": path.join(__dirname, '../../node_modules/electron/dist/electron.exe'),
"args": ['--app=' + path.join(__dirname, "../../")]
}
})
.forBrowser('chrome')
.build();
我正在尝试设置 Selenium 来测试我的电子应用程序。到目前为止,我有 Electron 文档中的代码,但是,这只会打开 HTML 文件,而不是我的实际应用程序。这是我的代码:
import * as path from "path";
const webdriver = require('selenium-webdriver');
const driver = new webdriver.Builder()
// The "9515" is the port opened by ChromeDriver.
.usingServer('http://localhost:9515')
.withCapabilities({
'chromeOptions': {
// Here is the path to your Electron binary.
binary: '../../node_modules/electron/dist/electron.exe'
}
})
.forBrowser('chrome')
.build();
const current_path = path.join(__dirname, "../../dist/public/index.html");
driver.get('file://' + current_path);
我怎样才能让它打开我的应用程序?
几天来我一直在努力解决这个问题,所有其他文章和 Whosebug 帖子要么指向 Spectron(现已弃用),要么没有解释如何打开我自己的应用程序而不是不同的网站。
编辑:我发现在 chromeOptions 对象中添加 "args": ['--app=PATH_TO_PROJECT_DIR')]
,并将名称更改为 "goog:chromeOptions"
,使其打开到正确的文件路径,但是,现在我收到以下错误:
WebDriverError: unknown error: no chrome binary at ../../node_modules/electron/dist/electron.exe
改回“chromeOptions”会阻止它打开应用程序目录,但会打开一个空白 chrome window.
解决方案是:
- 将
'../../node_modules/electron/dist/electron.exe'
替换为path.join(__dirname, '../../node_modules/electron/dist/electron.exe')
- 将
chromeOptions
更改为goog:chromeOptions
- 将
"args": [path.join(__dirname, '../../')]
添加到goog:chromeOptions对象。
工作代码:
import * as path from "path";
const webdriver = require('selenium-webdriver');
const driver = new webdriver.Builder()
// The "9515" is the port opened by ChromeDriver.
.usingServer('http://localhost:9515')
.withCapabilities({
'goog:chromeOptions': {
// Here is the path to your Electron binary.
"binary": path.join(__dirname, '../../node_modules/electron/dist/electron.exe'),
"args": ['--app=' + path.join(__dirname, "../../")]
}
})
.forBrowser('chrome')
.build();