使用Visual Studio/Test Complete14及Object Spy通过C#获取指定对象文本
根据你使用的Windows UI自动化框架不同,有以下几种常用写法:
1. 微软原生UI Automation框架(系统自带,无需额外安装依赖)
如果你拿到的是AutomationElement类型的控件对象:
using System.Windows.Automation; // 适配按钮、标签、静态文本等绝大多数控件 string text = ele.Current.Name; // 适配多行文本框、富文本区域等可编辑/长文本控件 if (ele.TryGetCurrentPattern(TextPattern.Pattern, out object patternObj)) { TextPattern textPattern = patternObj as TextPattern; // 获取完整文本 string fullText = textPattern.DocumentRange.GetText(-1); // 额外获取文本行数 int lineCount = fullText.Split(new[] {'\r', '\n'}, StringSplitOptions.RemoveEmptyEntries).Length; }
2. FlaUI框架(目前主流的Windows桌面自动化开源框架)
写法非常简洁,和Selenium使用体验接近:
// 直接获取控件文本 string text = ele.Text; // 获取行数 int lineCount = ele.Text.Split(new[] {'\r', '\n'}, StringSplitOptions.RemoveEmptyEntries).Length;
3. WinAppDriver(微软官方推出,语法完全兼容Selenium)
和你提到的Selenium写法几乎一致:
string text = ele.Text;
你可以根据自己实际使用的自动化框架选择对应写法即可。
内容的提问来源于stack exchange,提问作者Tony
相关产品推荐
相关产品推荐

