2012-08-31 35 views
7

因此,我正在用White進行一些C#自動化/ UI測試,並且遇到了一些問題 。我在應用程序中有一個DataGridView,並根據應用程序狀態設置背景顏色不同。我想在使用白色進行測試期間檢查這些顏色,但在這樣做時遇到問題。通過白訪問DataGridView單元格

這是我正在努力的工作。我可以獲取網格視圖,但只能作爲表格。然後,我以後遇到問題,因爲我最終得到的是簡單的TableCells而不是DataGridViewCells。

var Table = MainWindow.Window.Get<Table>("DataGridViewName"); 
var Row = Table.Rows[0]; 
var Cell = Row.Cells[0]; 
//invalid 
//var Color = Cell.Style.BackColor; 

有沒有人碰到過這個或者有什麼建議?

+0

爲什麼不能這樣做:MainWindow.Window.Get ? – Marty

+0

嗯,也許我在舊版本的白色,但我找不到白色的DataGridView組件 這是否爲你編譯? – sshannin

+2

如果應用程序是你的,你可以增強它的UI自動化支持/功能,以便與White更好地集成(我相信它使用UI Automation來完成它的大部分工作) –

回答

1

你確定backcolor是通過UI自動化公開的嗎? 從我所做的低級別UI自動化編碼中,我從未見過這樣的屬性。我剛剛打開Inspect(類似於UISpy),並將它指向C#WinForms應用程序中的DataGridView,並且沒有公開此類屬性。因爲它看起來並沒有被曝光,所以沒有辦法通過自動化來找到它,但是沒有捕獲圖像,並且將它與某些閾值進行比較(聽起來像一團糟)。

除非你能以某種方式將信息嵌入到其他一些自動化屬性中(這將需要更改測試中的應用程序),否則我沒有辦法做到這一點。 :(

+0

是的,這也是我得出的結論。我最終從元素定義的區域抓取了可見圖像,並查看了它的實際像素(基本上如您所建議的那樣)。 – sshannin