私の要件: テストが失敗した場合に、現在のページの URL をメソッドに渡してホーム ボタン リンクを取得するために、現在どのページにいるのかを知りたいです。例外が発生した場合は、最終的にホーム リンクに移動します。
それを達成する方法はありますか?
私の要件: テストが失敗した場合に、現在のページの URL をメソッドに渡してホーム ボタン リンクを取得するために、現在どのページにいるのかを知りたいです。例外が発生した場合は、最終的にホーム リンクに移動します。
それを達成する方法はありますか?
URL はブラウザのアドレス バーにあるはずです。そこから読み取ってください。
値を読み取る 1 つの方法は、アドレス バーの値に対するアサーションを記録し、記録されたアサーション メソッドで値にアクセスするコードの一部をコピーすることです。
もう 1 つの方法は、十字線ツールを使用してアドレス領域を選択し、(二重シェブロン アイコンをクリックして左側のペインを開き、) 選択した領域の UI コントロールを追加することです。次に、値にアクセスします。
これにより、トップ ブラウザが返されます。
BrowserWindow bw = null;
try
{
Playback.PlaybackSettings.WaitForReadyLevel = WaitForReadyLevel.AllThreads;
var browser = new BrowserWindow() /*{ TechnologyName = "MSAA" }*/;
PropertyExpressionCollection f = new PropertyExpressionCollection();
f.Add("TechnologyName", "MSAA");
f.Add("ClassName", "IEFrame");
f.Add("ControlType", "Window");
browser.SearchProperties.AddRange(f);
UITestControlCollection coll = browser.FindMatchingControls();
// get top of browser stack
foreach (BrowserWindow win in coll)
{
bw = win;
break;
}
String url = bw.Uri.ToString(); //this is the value you want to save
}
catch (Exception e)
{
throw new Exception("Exception getting active (top) browser: - ------" + e.Message);
}
finally
{
Playback.PlaybackSettings.WaitForReadyLevel = WaitForReadyLevel.UIThreadOnly;
}