当前位置: 首页 > 知识库问答 >
问题:

用于测试桌面应用程序(非web)的基于Appium的框架

杭永安
2023-03-14

有没有人有过自动化桌面应用程序(不是web)的经验?我需要一个类似于Appium的解决方案来将它与我的移动自动化集成(用Appium、Java编写)。

我们公司在3个平台上都有一个messenger客户端:Android、iOS和桌面。客户端数据在这些平台之间同步。我们已经有了移动平台的基本自动化(使用Appium)。现在我需要为桌面开发自动化。

我想要一个类似Appium的解决方案,这样就可以很容易地与我们的移动自动化集成。我找到了WinAppDriver,但它仅适用于Windows。我们的桌面应用程序很可能是跨平台的(Windows、Mac OS、Linux)。

有什么解决方案与WinAppDriver相似,但跨平台?

我们的桌面应用程序基于Electron,所以我可能可以用Spectron测试它(它是跨平台的)。但我怀疑与Appium的集成是否会很好。

共有1个答案

蒋华美
2023-03-14

编辑:

有点晚了,但是:

电子窗口本机应用程序可以用硒使用良好的ol'ChromeDriver进行测试。它并没有超过Appium(没有找到一种方法在Appium上用ChromeDriver生成窗口应用程序),但是它开箱即用,元素定位器也是一样的,所以你可以重用你的测试,只是以不同的方式启动驱动程序:通过在ChromeOptions到您的可执行文件,并调用ChromeDriver构造函数,而不是远程WebDriver。有关详细信息,请参阅本文。

还没有尝试过MacOS,但发现这可能会有所帮助。

 类似资料:
  • null 问题:它总是下载js和css文件。 我想如何开发chrome桌面应用程序 启动chrome桌面应用程序时,请将所有资产保存在本地。 每当chrome桌面应用程序启动时,它都应该引用本地保存的资产(我指的是角js文件和css) 在启动chrome桌面应用程序之前,它应该向服务器请求资产是否被更改。如果更改,请删除本地保存的文件并保存最新的文件。 如果资产没有更改,请使用旧的资产文件。这样,

  • 问题内容: 我正在设计一个简单的基于Web的应用程序。我是这个基于Web的领域的新手,我需要您提供有关设计模式的建议,例如应如何在Servlet之间分配职责,创建新Servlet的条件等。 实际上,我主页上的实体很少,而与每个实体相对应,我们几乎没有添加,编辑和删除等选项。之前,我为每个选项使用一个Servlet,例如Servlet1用于添加实体1,Servlet2用于编辑实体1,依此类推,这样我

  • 问题内容: 我对仅测试客户端Java应用程序的UI感兴趣。最受欢迎的框架是什么?您推荐的框架是什么?此外,Selenium为什么不这样做(或这样做)?在我看来,任何可以测试Web应用程序的东西都应该能够测试Windows应用程序。 问题答案: 尝试FEST框架。如果我没记错的话,这就是以前称为Abbot的东西。我使用它进行自动化测试,它看起来非常简单和方便。简单的事情变得容易,而复杂的事情并不是火

  • 问题内容: 我对仅测试客户端Java应用程序的UI感兴趣。最受欢迎的框架是什么?您推荐的框架是什么?另外,Selenium为什么不这样做(或这样做)?在我看来,任何可以测试Web应用程序的东西都应该能够测试Windows应用程序。 问题答案: 尝试FEST框架。如果我没记错的话,这就是以前称为Abbot的东西。我使用它进行自动化测试,它看起来非常简单和方便。简单的事情变得容易,而复杂的事情并不是火

  • 问题内容: 我正在设计一个简单的基于Web的应用程序。我是这个基于Web的领域的新手,我需要您提供有关设计模式的建议,例如如何在Servlet之间分配职责,创建新Servlet的标准等。 实际上,我主页上的实体很少,而与每个实体相对应,我们几乎没有添加,编辑和删除等选项。早些时候,我为每个选项使用一个Servlet,例如Servlet1用于添加实体1,Servlet2用于编辑实体1,依此类推,这样

  • 问题内容: 所有, 我已经用Java编写了基于命令行的PhoneBook应用程序。该应用程序基本上会询问用户的一些详细信息,例如姓名,年龄,地址和电话号码,并将它们存储在文件中。其他操作包括按名称,电话号码等查找电话簿。所有详细信息都通过控制台输入。 我正在尝试为我已实现的每个功能编写JUnit测试用例,但无法弄清楚如何将实现代码重定向到我的JUnit测试方法中的某个东西,当我的实际代码停止供用户