2016-07-28 61 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类,以便您可以使用所有可能的属性来标识元素。这是我遵循的最佳做法。