我正在尝试为在electronic@5.0.2上运行的Electron应用程序设置E2E测试套件。我曾尝试使用Spectron,但不断遇到waitUntilWindowLoaded()
的问题,并从DOM接收信息。这似乎是Spectron框架的一个始终如一的问题,因此我认为我应该尝试使用webdriverio,而不是等待解决该问题,因为电子的页面上有一个不错的example。我在这个示例中也遇到了问题。
我按照前两个步骤的建议进行了操作,并粘贴了新项目中提供的代码。
const webdriverio = require('webdriverio');
const options = {
host: 'localhost',
port: 9515,
desiredCapabilities: {
browserName: 'chrome',
chromeOptions: {
binary: 'C:\\Program Files (x86)\\Our App\\Our App.exe',
},
},
};
let client = webdriverio.remote(options);
client.init().getTitle().then(function(title) {
console.log('Title: ' + title);
});
以及当前的依赖关系,我在故障排除过程中抓住了一些:
"devDependencies": {
"@types/node": "^12.6.9",
"@wdio/cli": "^5.11.13",
"electron-chromedriver": "^6.0.0",
"wdio": "^3.0.3",
"webdriverio": "^5.11.12"
}
当前,我被client.init()
所阻止。确切的错误是TypeError: client.init is not a function
。是什么导致此错误,我该如何解决?