winappdriver - Windows 应用程序驱动程序,错误“找不到任何可识别的数字”。连接到会话时(驱动程序)
问题描述
我知道如何使用文件路径来启动一个 Windows 应用程序来启动它并且它可以工作(下面的工作示例)。我正在编写测试,它们也可以工作,但我的问题是:如果应用程序已经在运行,我如何为当前运行的应用程序创建我的“会话”(通常称为“驱动程序”)?
我已阅读这篇文章,其中解释了如何将新会话连接到已经运行的 Cortana。这是一个很好的例子,但我的应用程序是一个已启动的 exe,不是 Windows 的一部分,我收到错误“找不到任何可识别的数字。”。
我究竟做错了什么?
启动应用程序并创建“会话”的工作代码:
private const string WindowsApplicationDriverUrl = "http://127.0.0.1:4723";
protected static WindowsDriver<RemoteWebElement> session;
public static void Setup(TestContext context)
{
// Launch app and populate session
if (session == null)
{
// Create a new sessio
DesiredCapabilities appCapabilities = new DesiredCapabilities();
appCapabilities.SetCapability("app", filepath /*The exeecutable's filepath on c drive*/);
//LaunchWPF app and wpf session
session = new WindowsDriver<RemoteWebElement>(new Uri(WindowsApplicationDriverUrl), appCapabilities);
session.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10);
}
}
问题代码:
[TestMethod()]
public void Common_CreateSession_ForAlreadyRunningmyApp()
{
string WindowsApplicationDriverUrl = "http://127.0.0.1:4723";
IntPtr myAppTopLevelWindowHandle = new IntPtr();
foreach (Process clsProcess in Process.GetProcesses())
{
if (clsProcess.ProcessName.Contains("MyApp.Client.Shell"))
{
myAppTopLevelWindowHandle = clsProcess.Handle;
}
}
DesiredCapabilities appCapabilities = new DesiredCapabilities();
appCapabilities.SetCapability("appTopLevelWindow", myAppTopLevelWindowHandle);
//Create session for app that's already running (THIS LINE FAILS, ERROR: : 'Could not find any recognizable digits.')
session = new WindowsDriver<RemoteWebElement>(new Uri(WindowsApplicationDriverUrl), appCapabilities);
session.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10);
} }
解决方案
现在这里的 github 上有一个答案。你可以在github上看到我对moonkey124给出的答案做了3个调整,其中2个很明显(我的应用程序名称和一个小睡眠命令),其中1个是为了适应正在测试的WPF应用程序的答案......
推荐阅读
- c++ - SFML 中没有打开窗口
- java - 如何为我的数组每行仅打印 10 个元素?
- c - 对数组访问感到困惑
- javascript - 使用 PHP 和 MYSQL 的 jquery ui 自动完成搜索栏
- c# - html 帮助器复选框未按要求工作
- python - What is the problem in the for loop of my python pizza code not working?
- javascript - 如何获取所有表单触发器(不仅仅是当前脚本)?
- c# - 我想在 C# 中以嵌套格式读取字符串并插入模型列表?
- wechat - 微信小程序:如何用标签显示本地图片?
- php - PHP - 从 SQL Server 和 MySQL 同步两个相同的表并仅插入差异,但代码运行速度非常慢