在使用Windows UI Automation的时候,要查找某一UI元素,通常要先获取一个RootElement——桌面。其他所有的Element都是基于RootElement之上。该如何获取RootElement呢?
[Reflection.Assembly]::LoadWithPartialName("UIAutomationClient")
$rootElement = ([Windows.Automation.AutomationElement]::RootElement)
如果按照如上的方式加载Assembly,可以获得到RootElement,但是RootElement中的信息很不完整,甚至是严重的缺失,几乎不能正常使用
发生这种问题的原因是,UIAutoimation的API只能够在STA(Single-Thread Apartment)环境中运行,而powershell目前只能在MTA(Multi-Thread Apartment)环境中运行,而且不能够进行切换,导致运行时不兼容。有关STA和MTA可以参考 MSDN中Apartment的定义 或者 STA和MTA杂谈<
[Reflection.Assembly]::LoadWithPartialName("UIAutomationClient")
$rootElement = ([Windows.Automation.AutomationElement]::RootElement)
如果按照如上的方式加载Assembly,可以获得到RootElement,但是RootElement中的信息很不完整,甚至是严重的缺失,几乎不能正常使用
发生这种问题的原因是,UIAutoimation的API只能够在STA(Single-Thread Apartment)环境中运行,而powershell目前只能在MTA(Multi-Thread Apartment)环境中运行,而且不能够进行切换,导致运行时不兼容。有关STA和MTA可以参考 MSDN中Apartment的定义 或者 STA和MTA杂谈<
PowerShell中的Windows UI Automation测试实践

本文介绍了如何利用PowerShell结合Windows UI Automation技术进行UI自动化测试,详细讲解了在Microsoft环境中设置和执行自动化测试的过程,包括对对象的引用和操作。
最低0.47元/天 解锁文章
6171

被折叠的 条评论
为什么被折叠?



