2

我正在尝试使用 WinAppDriver ( https://github.com/Microsoft/WinAppDriver ) 自动化 WinForm 应用程序。

此应用程序正在使用 DevExpress。我需要正确处理来自 DevExpress 的电子表格或 GridViews 控件。我发现的唯一可能的解决方案是与 Actions 交互并将鼠标移动到屏幕上的特定位置。但是有2个问题:

  1. 获取/设置数据到特定的行/列
  2. 应用程序可能在不同的屏幕分辨率下运行,因此 X、Y 位置不匹配。

有人可以帮我弄这个吗?

与电子表格交互的代码:

 _driver.Current.FindElementByName("FormContainer").Click();
 var spread = _driver.Current.FindElementByAccessibilityId("spreadsheet");
 Actions ac = new Actions(_driver.Current);
 ac.MoveToElement(spread).MoveByOffset(-600,-220).Click().SendKeys("11").Build().Perform();
4

1 回答 1

0

今天刚遇到同样的问题。如果您spreadsheetcontrol有关联spreadsheetnamebox的 ,则解决方法包括更改namebox文本值。

如果您将namebox编辑值设置A6为例如(更容易实现;-)),焦点将设置A6spreadheetcontrol. 然后一个简单的 session.Keyboard.SendKeys将允许您更改单元格值。

您还可以使用formulabarcontrol来读取/写入单元格内容。但是没有这两个控件,我没有找到任何其他可靠的解决方案来自动化spreadsheetcontrol(请注意,Microsoft Excel 测试自动化也会出现同样的困难......)。

于 2019-04-04T17:59:44.810 回答