2017-02-11 51 views
3

我試圖捕獲特定應用程序的所有子樹元素,在某些機器上我獲取所有元素,但在某些機器中有一半元素(即子元素)缺失。Windows UI自動化 - 未捕獲所有子樹元素

FindAll(TreeScope.Subtree, Condition.TrueCondition); 

我試圖安裝的Microsoft .NET Framework 4.5,但沒有運氣

可能是什麼問題?爲什麼UI自動化在不同的機器中表現不同?客戶端機器中不允許UI Automation獲取所有子元素時可能會丟失什麼?

客戶機中還需要Microsoft .NET Framework 4.5 SDK嗎? 系統配置:

開發商機:(工作正常)

操作系統:Windows 7專業版

開發應用:的Visual Studio 2012專業版

.NET框架:4.5.2

的.NET Framework SDK:4.5

客戶機:(能不能取子元素)

操作系統:Windows 7專業版

.NET框架 :4.5

.NET Framework SDK :不適用

開發人員計算機中沒有安裝額外的軟件,Framework和Framework SDK也僅由Visual Studio 2012安裝。

代碼獲取元素很簡單,我米試圖獲取鼠標位置的元素:爲什麼這個問題存在

System.Windows.Point _location = new System.Windows.Point(Cursor.Position.X,Cursor.Position.Y); 

AutomationElement _ele = AutomationElement.FromPoint(_location); 

回答

0

我不知道,但我已經看到了一個測試應用程序,有時必須選擇父節點並單擊以展開它的子節點,以便通過自動化可以看到它們。

因此,您可以做的是創建自定義查找方法,該方法在嘗試檢索其子節點之前選擇並單擊一個節點以將其展開。

+0

它不只是可擴展字段,在很多情況下(機器),可見的子元素(如狀態欄中的標籤或網格內的元素)也不可訪問。我曾嘗試安裝.Net Framework 4.5,但沒有運氣。 –

+0

我們已經嘗試過所有版本的.NET,從4.5到4.6.2,但沒有運氣。在所有的開發人員機器(VS安裝在哪裏)它工作正常,可能是環境差異? –

+0

它可能與用戶帳戶權限有所不同嗎?也許你應該嘗試以管理員模式運行你的測試... – DLDR

相關問題