リンクのクリック、フォームの投稿、またはコードでの URL の変更が原因で、ブラウザーの URL がいつ変更されたかを検出する必要があります。
ページを表すオブジェクトを作成していて、URL が変更されたときにオブジェクトを再作成する必要があるため、必要です。
これが私がこれまでに試したことです:
private string _pageUrl;
protected T _page = default(T);
protected T Page
{
get
{
if (_page == null || UrlHasChanged())
{
_page = GetPage<T>();
SetPageUrl();
}
return _page;
}
}
private bool UrlHasChanged()
{
var driver = Session.GetDriver();
return driver.Url != _pageUrl;
}
public void SetPageUrl()
{
_pageUrl = Session.GetDriver().Url;
}
これはほとんどの場合に機能しますが、テストがページを進めてから最初のページに戻ると失敗します。
_page フィールドをリセットできるように、URL がいつ変更されたかを検出する方法が必要です。