我正在開發C#winform應用程序。我的表單中有Ribbon,其中包含幾個選項卡和幾個ribbonbuttons。我正在使用Coded UI進行測試。我面臨的問題是我無法找到使用編碼的UI的ribbonbuttons,每當我懸停在任何控制功能區(比如ribbonbutton)上時,它只檢測到Ribbon而不檢測控制。任何人都可以建議功能區控件是否支持用於測試的編碼UI?如果是,那我該怎麼辦?System.WIndows.Forms.Ribbon控件CodedUI
1
A
回答
0
在找到的色帶欄中還有另一個色帶欄。
這裏是我的代碼:File選項卡打開按鈕
var mainWindow = new WinWindow(app);
mainWindow.SearchProperties.Add(WinWindow.PropertyNames.ControlName, "frmMain");
var ribbonBar = new WinWindow(mainWindow);
ribbonBar.SearchProperties.Add(WinWindow.PropertyNames.ControlName, "radRibbonBar");
var ribbonBarInside = new WinMenuBar(ribbonBar);
ribbonBarInside.SearchProperties.Add(WinWindow.PropertyNames.Name, "radRibbonBar"); //Name not ControlName!!
Assert.IsTrue(ribbonBarInside.TryFind());
var tabs = new WinTabPage(ribbonBarInside);
var tab = tabs.FindMatchingControls().Where(t => (t as WinTabPage).AccessibleDescription.Trim() == "File").FirstOrDefault();
Assert.IsNotNull(tab);
Mouse.Click(tab);
var buttons = new WinButton(ribbonBarInside);
var button = buttons.FindMatchingControls().Where(t => (t as WinButton).AccessibleDescription.Trim() == "Open").FirstOrDefault();
Assert.IsNotNull(button);
//Mouse.Click(button); <-- this throw an Exception, next 2 lines solve this.
Mouse.Location = new Point(button.Left + button.Width/2, button.Top + button.Height/2);
Mouse.Click();
0
假設帕爾Bognar的答案是正確的,我會建議創建自己的可重複使用的類型,這種局面。這是一個例子。使這個更通用並且在每個實例中都有可用的實際按鈕和菜單選項卡的子類將會很簡單。
public class WinRibbon : WinControl
{
protected WinMenuBar RibbonBarInside {
get
{
var ribbonBarInside = new WinMenuBar(this.RibbonBar);
ribbonBarInside.SearchConfigurations.Add(WinControl.PropertyNames.Name, "radRibbonBar");
return ribbonBarInside;
}
}
public IEnumerable<WinTabPage> Tabs => new WinTabPage(this.RibbonBarInside).FindMatchingControls().OfType<WinTabPage>();
public WinControl FileTab => this.Tabs.FirstOrDefault(t => t.AccessibleDescription.Trim() == "File");
public IEnumerable<WinButton> Buttons => new WinButton(this.RibbonBarInside).FindMatchingControls().OfType<WinButton>();
public WinButton OpenButton => this.Buttons.FirstOrDefault(t => t.AccessibleDescription.Trim() == "Open");
public WinRibbon(UITestControl parent = null) : base(parent)
{
this.SearchProperties.Add(WinControl.PropertyNames.ControlName, "radRibbonBar");
}
public void ClickOpenButton()
{
var openButton = this.OpenButton; // to prevent creating a new one each time
Mouse.Location = new Point(openButton.Left + openButton.Width/2, openButton.Top + openButton.Height/2);
Mouse.Click();
}
}
相關問題
- 1. CodedUI無法識別控件?
- 2. CodedUI - 檢查控件是否存在
- 3. 錄製CodedUI找不到記錄控制
- 4. 在codedUI測試中訪問wpftext控件的字體屬性
- 5. 如何在CodedUI中獲取控件特定屬性的值?
- 6. CODEDUI c#無法單擊SharePoint功能區控件
- 7. 如何訪問CodedUI控件的NativeElement項目?
- 8. CodedUI Telerik Tab
- 9. CodedUI [testmethod]與[CodedUITest]
- 10. Codedui中的事件監聽器像Selenium
- 11. CodedUI下拉選擇
- 12. VS2013 codedui在搜索控件之前沒有等待頁面加載完成
- 13. 在CodedUI測試期間與多列WinList控件的單元接口
- 14. 測試自動化 - CodedUI無法區分應用程序中的不同控件
- 15. 如何查找在VS 2015中使用CodedUI進行測試的控件?
- 16. CodedUI測試項目結構
- 17. CodedUI TreeItem更改值屬性
- 18. Playback.Encrypt如何解密C#CodedUI
- 19. 的Infragistics CodedUI擴展vs2012
- 20. CodedUi:鼠標點擊座標
- 21. codedui複選框檢查c#
- 22. Specflow CodedUI Generator插件不生成功能文件
- 23. 如何使用Process.Start()從CodedUI腳本執行.bat或exe文件?
- 24. 創造CodedUI一個全球性的輔助文件測試
- 25. Codedui未能點擊隱藏的控制和邊界矩形問題
- 26. CodedUI如何將值傳遞給treeItem
- 27. CodedUI上的性能工具測試
- 28. CodedUI Test:Keyboard.SendKeys無法正常工作
- 29. CodedUI v11多瀏覽器支持
- 30. CodedUI測試生成器選擇項目
如果您發現以下任一解決方案有幫助,請標記爲已接受。如果仍然存在問題,請更新您的問題,試用您已經嘗試過的以及哪些功能無法正常工作。 – MPavlak