Electron 应用程序的 protractor 端到端测试

6
我目前正在开发一款基于Electron的应用程序,现在想要使用Protractor进行端到端测试。我已经阅读了Protractor的教程,并且正在尝试将其适配到Electron上。因为Electron是一个独立的应用程序,所以我该如何做呢?
看起来Protractor启动了一个Selenium服务器,然后尝试连接可用的HTTP服务器并运行诸如“单击此处”、“我在哪个URL上”、“输入这个文本”等测试。
因此,我该如何让selenium服务器访问Electron实例呢?
总之,这就是我的思路,非常感谢您的帮助,如果有任何错误,请随时纠正。

1
你看过如何在Electron中使用Selenium吗:https://github.com/atom/electron/blob/master/docs/tutorial/using-selenium-and-webdriver.md?不过我不知道Protractor。 - implicit_knowledge
2个回答

4

根据使用Selenium和WebDriver文档中的说明,这是您需要将其放入Protractor配置文件中的内容(例如,使用directConnect):

exports.config = {
    directConnect: true,

    capabilities: {
         browserName: "chrome",
         chromeOptions: {
             binary: '/Path-to-Your-App.app/Contents/MacOS/Atom'  // < IMPORTANT! 
         },  
    },

    // ...
}

(未经测试)


很酷,我尝试了 directConnect,它起作用了。但我的真正问题是我需要实际构建我的应用程序,然后将其指向二进制文件。因此,如果您可以调整您的答案并强调二进制文件(即您构建的应用程序),那么我会接受这个答案。 - cha55son
@cha55son,是的,binary 是配置的关键。directConnect 只是为了举例和简单起见。 - alecxe
@alecxe 这太棒了!唯一的问题是binary键需要放在chromeOptions下面,请参考@BladeBarringer的答案进行更正。 - Nick Tomlin

4

alecxe的回答大多数是正确的,但有一个小不准确之处。

binary应该嵌套在chromeOptions下面,像这样:

exports.config = {
  directConnect: true,

  capabilities: {
     browserName: "chrome",
     chromeOptions: {
       binary: '/Path-to-Your-App.app/Contents/MacOS/Atom'  // < IMPORTANT!
     }
   },

  // ...
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接