首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >同时使用白色UI和FlaUI

同时使用白色UI和FlaUI
EN

Stack Overflow用户
提问于 2018-08-16 23:49:30
回答 1查看 1.4K关注 0票数 0

我可以在一个项目中同时使用WhiteUI和FlaUI吗?

代码语言:javascript
复制
public TestStack.White.Application app = null;
public TestStack.White.UIItems.WindowItems.Window=null;
var processStartInfo = new ProcessStartInfo(@"winword.exe");
var application = Application.Launch(processStartInfo);
app=Application.Attach("winword");
FlaUI.Core.Application fpp = (FlaUI.Core.Application)app;
TestStack.White.UIItems.WindowItems.Window window = app.GetWindow("Microsoft Word");
FlaUI.Core.AutomationElements.Window fwin = (FlaUI.Core.AutomationElements.Window) Window;

无法将测试堆栈的窗口和应用程序强制转换为FlaUI。

EN

回答 1

Stack Overflow用户

发布于 2018-08-20 02:17:06

您需要从白色控件中获取基础AutomationElement,然后使用该AutomationElement创建FlaUI控件。这意味着您将仅限于使用UIAv2,因为怀特没有UIAv3实现。

怀特中的每个UIItem都公开了一个AutomationElement属性,您可以在该属性中获取底层UIAv2包装器。然后,您应该能够使用来自怀特的AutomationElement作为第二个参数来构造FlaUI UIA2FrameworkAutomationElement。然后将UIA2FrameworkAutomationElement从FlaUI传递到FlaUI的ComboBox。因此,它将看起来像下面这样。

代码语言:javascript
复制
var processStartInfo = new ProcessStartInfo(@"winword.exe");
var application = Application.Launch(processStartInfo);
TestStack.White.Application app = Application.Attach("winword");
TestStack.White.UIItems.WindowItems.Window window = app.GetWindow("Microsoft Word");
TestStack.White.UIItems.ListBoxItems.ComboBox whiteCombox = window.Get<ComboBox>(SearchCriteria.ByAutomationId("MyComboBox"));
var flaUiAutomationElment = new FlaUI.UIA2.UIA2FrameworkAutomationElement(new UIA2Automation(), whiteCombox.AutomationElement);
var flaUiComboBox = new FlaUI.Core.AutomationElements.ComboBox(flaUiAutomationElment);

如果可能的话,我建议所有的事情都用FlaUI来做。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51880948

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档