2016-07-28 54 views
0

作爲自動化測試的一部分,我無法單擊SharePoint功能區以選擇「Alert Me」控件。我收到以下錯誤:CODEDUI c#無法單擊SharePoint功能區控件

結果消息: 試驗方法CodedUITestProject2.CodedUITest1.SetAlert拋出異常: Microsoft.VisualStudio.TestTools.UITest.Extension.FailedToPerformActionOnHiddenControlException:無法在隱藏的控件進行「點擊」。其他細節: TechnologyName: '網頁' ControlType: '超鏈接' 標籤名: 'A' 編號: 'Ribbon.Library.Share.AlertMe.Menu.Scope.AlertLibrary-Menu16' 名稱: '' 目標:「 「 的innerText:'設置在這個圖書館 ---> System.Runtime.InteropServices.COMException警報:從HRESULT異常:0xF004F002

請在下面找到我的代碼:1和2的工作,它的錯誤出在我試着加減了不同的控制設置。

// 1。在功能區

 UITestControl CLR = new UITestControl(browser); 
     CLR.TechnologyName = "Web"; 
     CLR.SearchProperties.Add("InnerText", "LibraryLibrary Tools group. Tab 2 of 2."); 
     CLR.WaitForControlReady(); 
     Mouse.Click(new Point(CLR.BoundingRectangle.X + CLR.BoundingRectangle.Width/2, CLR.BoundingRectangle.Y + CLR.BoundingRectangle.Height/2)); 
     CLR.WaitForControlReady(); 
     //Mouse.Click(CLR); 
     Playback.Wait(3000); 

     //2. set focus on the a pane control on the ribbon  

     UITestControl FRL = new UITestControl(browser); 
     FRL.TechnologyName = "Web"; 
     FRL.SearchProperties.Add("TagName", "SPAN"); 
     FRL.SearchProperties.Add("ControlType", "Pane"); 
     FRL.SearchProperties.Add("Class", "ms-cui-groupTitle"); 
     FRL.SearchProperties.Add("InnerText", "Share & Track"); 
     FRL.WaitForControlExist(); 
     FRL.SetFocus(); 
     Mouse.Click(new Point(FRL.BoundingRectangle.X + FRL.BoundingRectangle.Width/2, FRL.BoundingRectangle.Y + FRL.BoundingRectangle.Height/2)); 
     Playback.Wait(3000); 


     //3. Click on "Alert Me" ID 
     UITestControl AM = new UITestControl(browser); 
     AM.TechnologyName = "Web";    
     //AM.SearchProperties.Add("Inner Text", "Alert Me"); 
     AM.SearchProperties.Add("Id", "Ribbon.Library.Share.AlertMe-Large"); 
     AM.WaitForControlReady(); 
     Mouse.Click(new Point(AM.BoundingRectangle.X + AM.BoundingRectangle.Width/2, AM.BoundingRectangle.Y + AM.BoundingRectangle.Height/2)); 
     Playback.Wait(2000); 

回答

0

這是常見的事與SharePoint自動化恰好選擇庫選項卡。 有兩個原因可能阻止您點擊「Alert Me」鏈接。 1.警告我保存在父母下方,並且您嘗試直接點擊。 2.存在兩個相同的元素,其中一個隱藏,另一個可見。

我會給第二個原因的代碼,如果它不起作用,那麼你可以嘗試按照父級子級別進行單擊,這很容易由你自己執行。

UITestControl AM = new UITestControl(browser); 
//AM.TechnologyName = "Web";    
//AM.SearchProperties.Add("Inner Text", "Alert Me"); 
AM.SearchProperties.Add("Id", "Ribbon.Library.Share.AlertMe-Large"); 
AM.WaitForControlReady(); 
UITestControlCollection uic=AM.FindMatchingControls(); 
foreach(UITestControl ui in uic) 
{ 
if(ui.BoundingRectangle.Width !=-1) 
{ 
Mouse.Click(ui); 
break; 
} 
} 

試試上面的代碼。否則按照父母的孩子關係。此外,不建議始終使用UITestControl來標識元素,請嘗試使用特定的類名稱,例如,如果您嘗試單擊超鏈接而不是UITestControl,請使用HtmlHyperlink類,以便您可以使用所有可能的屬性來標識元素。這是我遵循的最佳做法。