gpt4 book ai didi

c# - 检测 selenium webdriver 何时更改浏览器中的 url

转载 作者:行者123 更新时间:2023-12-02 14:24:33 24 4
gpt4 key购买 nike

我需要检测浏览器中的 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 字段。

最佳答案

我是一名 Java 开发人员,因此,我在 C# 文档中搜索与 Java API 类似的内容。我认为你应该使用 EventFiringWebDriver :

EventFiringWebDriver firingDriver = new EventFiringWebDriver(driver);
firingDriver.NavigatingBack += new EventHandler<WebDriverNavigationEventArgs>(...);
firingDriver.NavigatedBack += new EventHandler<WebDriverNavigationEventArgs>(...);
firingDriver.NavigatingForward += new EventHandler<WebDriverNavigationEventArgs>(...);
firingDriver.NavigatedForward += new EventHandler<WebDriverNavigationEventArgs>(...);

我查看了单元测试,发现这个测试可能对您有用: http://selenium.googlecode.com/svn/trunk/dotnet/test/WebDriver.Support.Tests/Events/EventFiringWebDriverTest.cs

关于c# - 检测 selenium webdriver 何时更改浏览器中的 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13721730/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com