Powershell UIAutomation - 如何识别对象支持的方法?

时间:2015-04-20 15:04:32

标签: powershell ui-automation

我刚刚用PoSH学习了一些UIA。到目前为止这么好,虽然有些基本......我已经解决了以下问题:

$np = get-uiawindow -class 'notepad' -name '*'
$npedit = $np | Get-UiaDocument
#  $npedit | send-keys "abc"
$npedit | Set-UiaControlText "def"
$currtext = $npedit | Get-UiaDocumentRangeText

那么下一个显而易见的阶段是自动驾驶,即或铬......

$ie = Get-UiaWindow -class 'ieframe' -name 'environment agenc*'
$addbar = $ie | Get-UiaPane -automationid '40966' -class "rebarwindow32"
$addbar | Set-UiaControlText "news.bbc.co.uk"

但似乎班级rebarwindow32的对象不支持“Set-UiaControlText”。

同样,在我之前的实验中,我也尝试过自动化Windows计算器。单击按钮等很容易,但尝试读取任何计算的结果证明更具挑战性 - UIAutomationSpy将其显示为类“Static”的UiaText对象。

所以这一切都是为了提出一个相当简单的问题 - 如何确定任何一个对象支持哪些方法 - 我不是要求如何获得计算器结果中的当前值,或者如何设置IE浏览器地址栏...但是我如何为自己找到了什么方法,我所识别的任何一个对象都支持。

到目前为止我用Google搜索的所有内容都显示了“如何做到这一点或那样”的具体示例(例如选择一个菜单,设置一些文字) - 但都非常具体。

根据下面mike z的评论,我现在尝试了GetSupportedPatterns,它(基于GetSupportedPatterns上的一些Google搜索,正是我需要的!)。

但是,如果(基于我上面的示例代码)我做$np.GetSupportedPatterns()我得到:

Cached                                  Current 
------                                  -------
UIAutomation.UiaWindowPattern+Window... UIAutomation.UiaWindowPattern+Window...
UIAutomation.UiaTransformPattern+Tra... UIAutomation.UiaTransformPattern+Tra...

似乎没有告诉我什么 - 我不能拉开窗户?另外,为什么只有缓存的操作,而不是完整的列表?

由于

史蒂夫

0 个答案:

没有答案