![](/img/trans.png)
[英]How can I add an underline to a HyperlinkButton in Silverlight?
[英]How to Programatically “Click” a Silverlight HyperlinkButton (WebAii)
我目前正在使用WebAii自动化框架针对Silverlight 3应用程序编写一些用户界面测试。 我是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”变量上调用的Navigate()方法,但我必须错过它是如何完成的。
您正在寻找的是HyperlinkButton上的User对象。 WebAii附带的所有控件都具有该对象。 这样,您可以在任何控件类型上调用任何用户操作。
linkicareabout.User.Click()
User对象支持您可以想到的任何用户操作,并模仿真实的用户交互。 查看此处的文档。
我自己无法做到这一点,而是必须编写自己的导航代码。 对于Firefox和IE,您可以使用HtmlPage.Window.Navigate
导航到所需的URL。
但是,Safari和Chrome需要一些额外的工作。 我不得不使用隐藏的HTML组件和一些javascript interops。
此解决方法在此处详述 。
基本上,它需要向包含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);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.