在C#中跨平台实现SendKeys?

IT *_*DAV 12 c# linux macos cross-platform sendkeys

我需要在Windows,Mac和Linux上自动化桌面应用程序(不是Web浏览器)测试.在Windows上我使用SendKeys,我在Mac和Linux上使用什么?我是否可以从xUnit中优先使用任何跨平台的.NET Core SendKeys实现?

Jer*_*son 8

我不确定你的要求是否合理.

.Net Core只有一部分API,以提供跨平台功能.即可在不同平台上运行的共享库.

根据定义,这不能包括任何特定于平台的功能,例如SendKeys或显示消息框(System.Windows.Forms)等特定于平台(甚至WPF和WinForms也有不同的API).

是否有我最好从xUnit使用的.NET Core SendKeys实现?

我认为这让对你的问题感到困惑.除非您使用Selenium或胖客户端测试工具(如SikuliX,EggPlant,HP Functional),否则您实际上不会为GUI 编写单元测试.

这些通常被称为集成,系统或GUI测试.

Selenium和SikuliX都是免费的,可以跨平台运行.它们可用于发送密钥.由于您对Web不感兴趣,所以SikuliX就是您想要的.

SikuliX概述:

https://www.scribd.com/document/87620043/sikuliscript-Overview-by-student

培训视频:

SikuliX教程#1 - 介绍和设置 https://www.youtube.com/watch?v=VdCOg1bCmGo

SikuliX教程#2 - 基础知识 https://www.youtube.com/watch?v=I-UYoezac4Q

SikuliX教程#3 - 条件自动化 https://www.youtube.com/watch?v=vuqfDdPlI88

SikuliX教程#4 - 条件循环 https://www.youtube.com/watch?v=Bb513yh6RGE

SikuliX教程#5 - 游戏示例 https://www.youtube.com/watch?v=xTTIikzxFfc&t=816s


jas*_*son 6

您可以将mono/.net核心SendKeys类用于跨平台.

Linux原生 - xdotool
Mac原生 - 在这里这里.