MS UIAutomation 对文本无用吗?如何设置字体粗细、获取插入符号位置、插入文本等?

     2023-04-17     19

关键词:

【中文标题】MS UIAutomation 对文本无用吗?如何设置字体粗细、获取插入符号位置、插入文本等?【英文标题】:Is MS UIAutomation useless against text? How to set font weight, get caret pos, insert text, etc? 【发布时间】:2013-03-07 03:33:54 【问题描述】:

我正在研究用于控制文本的 Microsoft UIAutomation,但发现它没用。我需要做以下事情:

获取插入符号位置 This article 暗示我需要跟踪插入符号,如果我不知道它的原始位置,这将不起作用.... 在特定位置插入文本 只发现使用ValuePatternSetValue覆盖整个字段的能力 设置字体粗细 我可以读取字体粗细,但不能设置它 等

到目前为止,我已经阅读了许多文章,但没有人指出这些可能性。 This SO question 对我开始很有帮助,但是当我试图深入挖掘时,我遇到的问题多于答案。是我去 MS Accessibility Automation 的唯一选择,它在 WPF 虚拟化等方面表现不佳。

如果有人可以为我指出一篇有用的文章或提供上述缺点的示例,那就太好了。但是,我目前不抱希望,因为这一切似乎都导致了获取信息的方法,而不是更新信息。

编辑

我什至试图深入研究UIAutomationClient.dll,似乎确实没有对此的支持。似乎 UIA 主要用于提取粗略的信息并单击周围。没有真正的文本支持

Here is another SO question...relatively similar to this one...it 似乎证实 UIA 对我的需求毫无用处..

Hack 解决方法

我们的解决方法是使用 UIA 获取一般上下文,然后使用 AutoIt SendKeys

【问题讨论】:

我也花了几个小时寻找这个。你的帖子减轻了我的挫败感——我会为此避免 UI 自动化。 【参考方案1】:

您指向的文章描述了希望支持 TextPattern 以实现 UI 自动化的应用程序需要如何工作,而不是 客户端 希望使用 TextPattern 检索信息需要去工作。特别是,实施者需要跟踪插入符号; 客户没有。

话虽如此,TextPattern 旨在检索信息,而不是设置它;在与旨在插入文本的文本服务框架广泛合作之后,我可以理解为什么。 (许多应用程序的设计不允许随意随意操作其数据结构;允许应用程序决定何时可以对其进行操作严重扭曲了文本服务的设计。)

前两项非常简单。您可以使用 IUIAutomationTextPattern::GetSelection 获取选定的文本;这将返回 text ranges 的集合,您可以提取其位置等。

虽然您不能直接操作文本范围的内容,但您可以选择它,然后使用 SendKeys 等生成输入。

【讨论】:

如何处理 UIAutomation 中的文本通知?

】如何处理UIAutomation中的文本通知?【英文标题】:HowtohandletextnotificationsinUIAutomation?【发布时间】:2014-03-0517:16:42【问题描述】:在iOS应用程序中,我正在更改标签的文本。在ObjectiveC中,对于文本更改有delegates。如何使用UIAutom... 查看详情

搜索特定列后,如何使用 MS Word VBA 代码对具有特定文本的单元格进行着色?

】搜索特定列后,如何使用MSWordVBA代码对具有特定文本的单元格进行着色?【英文标题】:HowdoIuseMSWordVBAcodetoshadecellswithspecifictextafterseachingaaspecificcolumn?【发布时间】:2021-05-2016:44:00【问题描述】:我正在使用word中的表格,并使... 查看详情

MS Access 2010 上的可编辑文本框 - 行为正确吗?

】MSAccess2010上的可编辑文本框-行为正确吗?【英文标题】:EditabletextboxonMSAccess2010-Behaviorcorrect?【发布时间】:2018-07-3015:44:02【问题描述】:我有一个显示数据概览/摘要的连续表单。用户可以选择一行并单击我在页脚中创建的按... 查看详情

如何引用 Ms Access 表中的文本?

】如何引用MsAccess表中的文本?【英文标题】:HowtorefertoatextinanMsAccesstable?【发布时间】:2010-04-1904:21:07【问题描述】:我想引用一个数据单元格,如果它等于某个字符串,它会做一些事情。代码:Ifds.Tables(0).Rows(i)("Status")="Reserve... 查看详情

UIAutomation 和在滚动视图中读取静态文本

】UIAutomation和在滚动视图中读取静态文本【英文标题】:UIAutomationandreadingstatictextinscrollview【发布时间】:2013-01-0316:50:29【问题描述】:我正在使用XcodeInstruments进行一些UIAutomation测试,但在访问我想要验证的staticText时遇到问题... 查看详情

如何通过 UIAutomation 处理“_APPNAME_ 想要使用您当前的位置”警报

】如何通过UIAutomation处理“_APPNAME_想要使用您当前的位置”警报【英文标题】:Howtodealwiththe"_APPNAME_WouldLiketoUseYourCurrentLocation"alertthroughUIAutomation【发布时间】:2012-12-1817:43:24【问题描述】:好吧,这让我发疯了。我有一... 查看详情

可以使用 VBA 在报告部分标题中操作文本标签吗? (MS-访问)

】可以使用VBA在报告部分标题中操作文本标签吗?(MS-访问)【英文标题】:PossibletomanipulatetextlabelsinreportsectionheadersusingVBA?(MS-ACCESS)【发布时间】:2018-09-0415:16:11【问题描述】:这里可能是愚蠢的问题......但是否可以在MS-Access中以... 查看详情

如何使用 Xcode 机器人在模拟器上运行 UIAutomation

】如何使用Xcode机器人在模拟器上运行UIAutomation【英文标题】:HowtorunUIAutomationonsimulatorusingXcodebots【发布时间】:2015-04-2601:01:08【问题描述】:我正在使用Xcode6.3.1和OSX服务器4我有一个UI自动化模板,我希望将测试成功失败记录在... 查看详情

UIAutomation dragInsideWithOptions 对 iOS 7 模拟器没有影响

】UIAutomationdragInsideWithOptions对iOS7模拟器没有影响【英文标题】:UIAutomation\'sdragInsideWithOptionshasnoeffectoniOS7simulator【发布时间】:2013-09-1318:32:47【问题描述】:由于我使用Xcode5和新的iOS7模拟器来运行带有Instruments的UIAutomation测试,... 查看详情

从文本转移到 varchar(MAX):MS Access 有啥问题吗?

】从文本转移到varchar(MAX):MSAccess有啥问题吗?【英文标题】:Movingfromtexttovarchar(MAX):ArethereanytroublestoexpectwithMSAccess?从文本转移到varchar(MAX):MSAccess有什么问题吗?【发布时间】:2011-12-2004:51:31【问题描述】:众所周知,使用SQLSe... 查看详情

我可以使用文本框引用来选择 MS Access 中的特定记录吗

】我可以使用文本框引用来选择MSAccess中的特定记录吗【英文标题】:CanIuseatextboxreferencetoselectspecficrecordsinMSAccess【发布时间】:2021-05-0413:57:39【问题描述】:我有一个联合查询:这是其中的一部分:SELECTCompletedTrainingsNew.Employee,C... 查看详情

如何使用uiautomation进行ios自动化测试

...的时候,收藏一篇很好的Blog,很全面地介绍了如何使用UIAutomation的JavaScriptLibraries做iOS程序的自动化测试。如果作者早点看到这篇文章,应该要少走一些弯路,这里没有创意性的它他翻译成中文,希望对你们有一些帮助。  原... 查看详情

用 C# 对 MS office 进行编程 - 有可能吗?

】用C#对MSoffice进行编程-有可能吗?【英文标题】:ProgrammingMSofficewithC#-isitpossible?【发布时间】:2016-03-2308:05:11【问题描述】:可以使用VisualBasicforApplications对Excel等MSOffice应用程序进行编程。是否可以使用C#对MSOffice进行编程以执... 查看详情

如何使用 UIAutomation 从 UIImagePickerController 中选择图像

】如何使用UIAutomation从UIImagePickerController中选择图像【英文标题】:HowtouseUIAutomationtoselectimagefromUIImagePickerController【发布时间】:2015-06-1123:58:41【问题描述】:我们正在尝试围绕我们应用程序中的流程进行UIAutomation测试,其中用... 查看详情

在 Xcode Instruments 中,如何导入 UIAutomation 脚本?

】在XcodeInstruments中,如何导入UIAutomation脚本?【英文标题】:InXcodeInstruments,howtoimportaUIAutomationscript?【发布时间】:2014-05-0822:52:53【问题描述】:在XcodeInstruments中,如何#import“脚本”部分下列出的UIAutomation脚本?在currentFile.js... 查看详情

如何使用 Jenkins 运行 UIAutomation?

】如何使用Jenkins运行UIAutomation?【英文标题】:HowtorunUIAutomationusingJenkins?【发布时间】:2012-10-0421:27:12【问题描述】:我正在尝试将InstrumentsUIAutomation与Jenkins的CI结合起来。在Jenkins项目的配置中,我定义了一个调用脚本:shbuildA... 查看详情

清除 UIAutomation 测试的钥匙串

】清除UIAutomation测试的钥匙串【英文标题】:clearingkeychainforUIAutomationtests【发布时间】:2011-11-1109:48:45【问题描述】:我正在编写UIAutomation测试来测试我们iPhone应用的UI。由于一些数据在应用程序第一次运行时存储在钥匙串中,... 查看详情

如何在 iPhone 模拟器中工作的 UIAutomation 中获取 captureScreenWithName?

】如何在iPhone模拟器中工作的UIAutomation中获取captureScreenWithName?【英文标题】:HowcanIgetcaptureScreenWithNameinUIAutomationworkinginiPhoneSimulator?【发布时间】:2010-08-0908:06:28【问题描述】:我是iPhone自动化的新手,也是iOS4引入的UIAutomation... 查看详情