如何以管理员权限通过WinAppDriver启动桌面应用进行测试
解决Appium启动Windows应用需管理员权限的问题
有两种可靠方式解决这个问题,核心都是让目标应用获得管理员权限:
方式一:以管理员身份启动Windows Application Driver
Windows Application Driver(WAD)启动的应用会继承它的权限,直接让WAD以管理员权限运行即可:
- 找到WAD的快捷方式(通常在
C:\Program Files (x86)\Windows Application Driver路径下),右键选择以管理员身份运行 - 若将WAD作为服务运行,打开服务管理器,找到
Windows Application Driver服务,右键→属性→登录,选择具备管理员权限的账户,按需勾选“允许服务与桌面交互”
方式二:通过Appium Capabilities指定管理员权限
利用微软提供的ms:elevated实验性Capability,直接让启动的应用以管理员权限运行,修改你的代码如下:
AppiumOptions options = new AppiumOptions(); options.AddAdditionalCapability("app", UltreonAppId); options.AddAdditionalCapability("deviceName", "WindowsPC"); options.AddAdditionalCapability("ms:experimental-webdriver", true); // 添加管理员权限参数 options.AddAdditionalCapability("ms:elevated", true); WindowsDriver<WindowsElement> session = new(new Uri(WindowsApplicationDriverUrl), options);
注意事项
- 必须确保
ms:experimental-webdriver已设为true,因为ms:elevated属于实验性特性,依赖该开关启用 - 若为传统桌面EXE应用,也可直接指定EXE路径代替AppId,搭配
ms:elevated参数效果一致 - 测试前关闭目标应用的已有进程,避免权限冲突
内容的提问来源于stack exchange,提问作者Irene
相关产品推荐
相关产品推荐

