电子测试 - 在devtools窗口和主应用程序窗口之间切换WebdriverIO

时间:2017-01-06 11:57:59

标签: javascript node.js selenium electron webdriver-io

我们需要测试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()');
});

如何从开发工具切换到主窗口?

1 个答案:

答案 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