如何在 Appium 中为 运行 对话框创建会话?

How to create a session for Run Dialog in Appium?

通过使用 powershell 命令,我可以获得 run dialog 程序 ID,即 Microsoft.Windows.Shell.RunDialog。但是,我无法使用下面的代码进行此操作。有什么想法吗?

DesiredCapabilities desktopCapabilities = new DesiredCapabilities();
desktopCapabilities.SetCapability("app", "Microsoft.Windows.Shell.RunDialog");
desktopCapabilities.SetCapability("deviceName", "WindowsPC");
desktopCapabilities.SetCapability("platformName", "Windows");

session = new WindowsDriver<WindowsElement>(new Uri("http://127.0.0.1:4723"), desktopCapabilities);

查看 this post 关于 运行 对话框的回答。我最好的猜测是 winappdriver 正在调用 rundll32.exe 而不是对话框本身。

你可以试试运气改变这条线

desktopCapabilities.SetCapability("app", "Microsoft.Windows.Shell.RunDialog");

进入

desktopCapabilities.SetCapability("app", "c:\windows\system32\rundll32.exe shell32.dll,#61");

或者,您可以获取桌面会话并将 "windows key + r" 发送给它。 Here 是获取桌面会话的方法。