我需要检测浏览器中的 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;
}
这在大多数情况下都有效,但是当测试前进一个页面然后返回到初始页面时它会失败。
我需要一种方法来检测 url 何时更改,以便我可以重置 _page 字段。