3

現在、WebAii 自動化フレームワークを使用して、Silverlight 3 アプリケーションに対するユーザー インターフェイス テストをいくつか作成しています。私は Silverlight を初めて使用するので、HyperlinkBut​​ton に関する情報が少し不足していると思われます。

アプリケーションには HyperlinkBut​​ton があり、ページに移動し、ページのボタンを見つけて、そのボタンを「クリック」するコードを記述しようとしています (HyperlinkBut​​ton のプロパティで指定された 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");

「linkicareabout」変数で呼び出すことができるある種の Click() アクションまたは Navigate() メソッドが表示されることを期待していますが、それがどのように行われたかを見逃しているに違いありません。

4

2 に答える 2

2

私はこれを自分で行うことができず、代わりに独自のナビゲーション コードを作成する必要がありました。Firefox と IE の場合は、 を使用HtmlPage.Window.Navigateして目的の URL に移動するだけです。

ただし、Safari と Chrome には追加の作業が必要です。非表示の HTML コンポーネントといくつかの JavaScript 相互運用機能を使用する必要がありました。

この回避策については、こちらで詳しく説明しています

基本的には、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);
 }
于 2009-08-28T18:05:25.237 に答える