如何让Selenium2完成加载页面.在执行任何断言之前点击?

wil*_*lem 4 c# selenium selenium-webdriver

我想使用selenium2 c#webdriver来测试我们的登录机制.如果我在调试模式下运行它并且给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);
    }
Run Code Online (Sandbox Code Playgroud)

我如何告诉Selenium等到logonAnchor.Click完成加载下一页?

Mik*_*wan 9

像这样设置隐式等待:

driver.Manage().Timeouts().ImplicitlyWait(new TimeSpan(0, 0,30));
Run Code Online (Sandbox Code Playgroud)

这将允许Selenium阻止,直到FindElement成功或超时.