我目前正在使用WebAii自动化框架来编写一些针对Silverlight3应用程序的用户界面测试。我是Silverlight的新手,我怀疑我遗漏了一些关于HyperlinkButton的信息。
应用程序有一个HyperlinkButton,我正在尝试编写代码,导航到页面,找到页面中的按钮,然后“单击”该按钮(然后导航到在HyperlinkButton的属性中指定的NavigateUri )。
我不知道如何执行那个点击。到目前为止我所拥有的代码(简化):
Manager.LaunchNewBrowser(BrowserType.InternetExplorer);
ActiveBrowser.NavigateTo("http://server/appname/");
var slApp = ActiveBrowser.SilverlightApps()[0];
var menu = slApp.FindName<StackPanel>("LinksStackPanel");
var linkicareabout = menu.Find.ByName<HyperlinkButton>("Some Cases");我希望看到一些Click()操作,或者可以在"linkicareabout“变量上调用的导航()方法,但我肯定错过了它是如何实现的。
发布于 2009-08-28 18:05:25
我自己做不到这一点,只能写自己的导航代码。对于火狐和IE,你可以只使用HtmlPage.Window.Navigate导航到所需的网址。
然而,Safari和Chrome需要一些额外的工作。我不得不使用隐藏的HTML组件和一些javascript互操作。
此解决方法是detailed here。
基本上,它需要向包含Silverlight控件的HTML页面添加一个隐藏的锚点和按钮,然后通过调用DOM修改锚点并单击按钮。
HtmlElement anchor = HtmlPage.Document.GetElementById("externalAnchor");
HtmlElement button = HtmlPage.Document.GetElementById("externalButton");
if ((anchor != null) && (button != null))
{
anchor.SetProperty("href", url);
button.Invoke("click", null);
}https://stackoverflow.com/questions/1348361
复制相似问题