c# - 如何要求 Selenium2 在执行任何断言之前完成 .Click 上的页面加载?

标签 c# selenium selenium-webdriver

我想使用 selenium2 c# webdriver 来测试我们的登录机制。如果我在 Debug模式下运行并给 Click 方法一些时间,则以下测试通过。如果我正常运行它,但测试失败并出现 NoSuchElementException。

    [Test]
    public void TestClickLogonLink()
    {
        _driver.Navigate().GoToUrl("http://nssidManager.local/");
        IWebElement loginElement = _driver.FindElement(By.Id("loginWidget"));
        IWebElement logonAnchor = loginElement.FindElement(By.LinkText("Log On"));

        logonAnchor.Click();

        IWebElement userNameTextBox = _driver.FindElement(By.Id("UserName"));

        Assert.IsNotNull(userNameTextBox);
    }

我需要如何告诉 Selenium 等待 logonAnchor.Click 加载完下一页?

最佳答案

像这样设置隐式等待:

driver.Manage().Timeouts().ImplicitlyWait(new TimeSpan(0, 0,30));

这将允许 Selenium 阻塞,直到 FindElement 成功或超时。

关于c# - 如何要求 Selenium2 在执行任何断言之前完成 .Click 上的页面加载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6666322/

相关文章:

java - Selenium cssSelector 在 IDE 中有效,但在 Webdriver 中无效

c# - Telerik RadCaptcha/我们如何从代码隐藏/不使用验证组验证 RadCaptcha

c# - 在 gridview 行命令中获取 BoundField 值

c# - 是否可以为 .NET 应用程序或只是一个线程设置 CultureInfo?

java - NiFi - 如何根据子元素的值获取特定的 DOM 元素

testing - 使用 Hudson(现在称为 Jenkins)从 JUnit XML 格式文件生成 Selenium 报告

java - 为什么 Selenium 找不到 XUL 按钮?

javascript - 如何在 node.js selenium-webdriver 中模拟右键单击?

C# 如何模拟 Configuration.GetSection ("foo:bar").Get<List<string>>()

Selenium WebDriver : Actions. Pause() 与 Thread.Sleep()