Nic*_*ick 4 c# selenium selenium-webdriver
我正在使用 Selenium Web 驱动程序,我想监听浏览器中发生的事件。例如,当页面上的某些 javascript 导致 url 使用以下命令更改时window.location = "...";
我有一个监听器附加到Navigated我的事件上EventFiringWebDriver。但是当浏览器的 url 更改时,此操作将无法触发。我由此推断 Selenium 不能以这种方式监听事件?
是否有正确的方法来附加到浏览器或来自浏览器的 DOM 事件?
我能够使用该OpenQA.Selenium.Support.UI.WebDriverWait对象来实现这一目标。我只需指定谓词(对浏览器 URL 的比较)和时间跨度。Selenium 每 500 毫秒检查一次结果,直到返回 true 或时间跨度过去,在这种情况下测试失败。不完全是事件驱动的,但它具有预期的效果:
private readonly IWebDriver _driver = new FirefoxDriver();
[Test]
public void UrlIsCorrect()
{
var w = new WebDriverWait(_driver, TimeSpan.FromSeconds(30));
w.Until(driver => driver.Url == "http://test.com");
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3855 次 |
| 最近记录: |