在电子中使用量角器 [英] Using Protractor in Electron

查看:82
本文介绍了在电子中使用量角器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用确实有帮助),但我仍然出现我不明白的错误:

I am trying to set up unit tests and e2e tests for an application I have running with Electron using Protractor. I've been refering to many different posts (this one did help), but I still get an error I don't understand :

Message:
  Error while waiting for Protractor to sync with the page: "angular could not be found on the window"
Stacktrace:
  undefined

我的 conf.js 文件如下所示:

exports.config = {
    directConnect : true,
    seleniumAddress: 'http://localhost:4444/wd/hub',
    baseUrl:"file://home/me/workspace/testing-project/main.js",
    capabilities: {
        browserName: "chrome",
        chromeOptions: {
            binary: "/home/me/.linuxbrew/lib/node_modules/electron-prebuilt/dist/electron",
            args: ["--test-type=webdriver"]
        }
    },
    specs: ['todo-specs.js'],
    onPrepare: function(){
        browser.resetUrl = "file://";
        browser.driver.get("file://");
    }
};

考虑到量角器网站上提供的文档,我的印象是我不需要安装其他(例如茉莉花).
令我感到惊讶的是,即使 main.js 的路径(根据Electron的规范相应地启动应用程序)的路径正确,但在弹出的Electron窗口中却看不到任何内容.
你们中有人遇到过这个问题吗?您设法解决了吗?

Considering the documentation given on the Protractor website, I am under the impression that I don't need to install anything else (Jasmine for example).
What surprises me is that even though the path to the main.js (that starts the application accordingly to Electron's specifications) is correct, I can't see anything in the Electron window that pops up.
Did any of you encountered this issue? Did you manage to resolve it?

推荐答案

显然,使用电子二进制文件不足以实际启动您的应用程序.但是,通过为应用程序构建二进制文件并将其链接到您的 conf.js 文件中,即可.
我已经可以将文件缩小为:
conf.js

Apparently, using the electron binary is not enough to actually launch your application. However, by building the binary for your application and linking it into your conf.js file works.
I have been able to reduce my file to this:
conf.js

exports.config = {
    seleniumAddress: 'http://localhost:4444/wd/hub',
    specs: ['test-spec.js'],
    capabilities: {
        browserName: "chrome",
        chromeOptions: {
            binary: "./dist/myAwesomeApp/myAwesomeAppBinary"
        }
    },
    onPrepare: function () {
        browser.resetUrl = "file://";
    }
};

通过这种方式,无需描述baseUrl或使用browser.get()browser.driver.get()来在Electron中启动应用程序.
但是,我宁愿不必构建应用程序二进制文件,但我认为目前不可能.

By doing it this way, there is no need to describe a baseUrl or to use browser.get() nor browser.driver.get() to start the app in Electron.
However, I would have preferred not to have to build the app binary, but I don't think it is possible for now.

这篇关于在电子中使用量角器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆