我们需要测试Electron App。 我们正在使用Spectron使用ChromeDriver和WebdriverIO(用于NodeJS的Selenium 2.0绑定)。
问题:我们的应用程序从开放式开发工具窗口开始,而不是主应用程序窗口。 Webdriver连接到开发工具窗口而不是主窗口。我们无法切换到主窗口。
示例代码:
var app = new Application({
path: cfg.pathToElectron,
args: [cfg.pathToSA]
});
app.start().then(function(){
app.client // <- this is dev tools window instead of main window
// this closes the dev tools which is ok but we need to switch to main window
app.client.close();
// things like this doesn't help
app.client.execute('xxx.getCurrentWindow().closeDevTools()');
});
如何从开发工具切换到主窗口?
答案 0 :(得分:3)
当你提出问题而不是立即找到答案时,你知道这种感觉吗?
解决方案是从Spectron API调用windowByindex()
。您需要从Spectron调用API函数,而不是Webdriver。
解决我们的问题是:
( ! ) Fatal error: Uncaught exception 'Zend\ServiceManager\Exception\ServiceNotFoundException' with message 'Zend\ServiceManager\ServiceManager::get was unable to fetch or create an instance for Professor/Controller/WebinarController' in /uov-videos/www/david/plataovirtual/vendor/zendframework/zendframework/library/Zend/ServiceManager/ServiceManager.php on line 526