Selenium.WebDriver for.get如何验证页面加载是否成功

时间:2014-06-16 15:43:53

标签: selenium-webdriver

我正在使用ptor.get(“someURL”),如何验证该页面是否已成功加载,例如网站已关闭等。

登录站点是非Angular SSO登录页面。

我可以做元素查找,但正在寻找更合适的方式,如Status = 200(OK)等。

2 个答案:

答案 0 :(得分:0)

这应该有效

Driver.Manage().Timeouts().SetPageLoadTimeout(TimeSpan.FromSeconds(20));
try{
    Driver.Navigate().GoToUrl("http:/google.co.in"); 
    if (Driver.Title != null)
    {
        String pageName = Driver.Title;
        if (pageName.Equals("Gmail: Email from Google"))
        {
            Console.WriteLine("done");
        }
    }
    Console.WriteLine("Error during loading of Landing Page");               
}
catch (Exception){
    Console.WriteLine("Page not loaded within 20sec");
}

答案 1 :(得分:0)

我测试了加载页面是否完整,可以在硒3.14.2中工作

    public static void Until(IWebDriver driver, Func<IWebDriver, Boolean> waitCondition, long timeoutInSeconds)
    {
        WebDriverWait webDriverWait = new WebDriverWait(driver, TimeSpan.FromSeconds(timeoutInSeconds));
        webDriverWait.Timeout = TimeSpan.FromSeconds(timeoutInSeconds);
        try
        {
            webDriverWait.Until(waitCondition);
        }
        catch (Exception e)
        {
            Console.WriteLine(e);
        }
    }

    public static void UntilPageLoadComplete(IWebDriver driver, long timeoutInSeconds)
    {
        Until(driver, (d) =>
        {
            Boolean isPageLoaded = (Boolean)((IJavaScriptExecutor)driver).ExecuteScript("return document.readyState").Equals("complete");
            if (!isPageLoaded) Console.WriteLine("Document is loading");
            return isPageLoaded;
        }, timeoutInSeconds);
    }