我正在使用ptor.get(“someURL”),如何验证该页面是否已成功加载,例如网站已关闭等。
登录站点是非Angular SSO登录页面。
我可以做元素查找,但正在寻找更合适的方式,如Status = 200(OK)等。
答案 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);
}