我正在尝试使用 C# 在页面对象模型中使用 webdriver 测试单页面 Web 应用程序。网站 javascript 密集型和延迟加载我尝试使用显式等待并使用以下代码检查 javascript 是否处于活动状态
return jQuery.active == 0
我尝试使用两者的组合来了解页面是否已加载
WebDriverWait _wait = new WebDriverWait(Driver, TimeSpan.FromSeconds(25));
bool WhenToExit = true;
while (WhenToExit) // Handle timeout somewhere
{
var ajaxIsComplete = (bool)(Browser.Driver as IJavaScriptExecutor).ExecuteScript("return jQuery.active == 0");
if (ajaxIsComplete)
{
bool isDisplayed = _wait.Until(d => d.FindElement(By.ClassName("example"))).Displayed;
if(isDisplayed)
{
break;
}
}
Thread.Sleep(100);
int Timer = 0;
Timer++;
if (Timer == 100)
{
WhenToExit = false;
}
}
.但是 webdriver 仍然不等待页面加载,它只是继续执行步骤,所以我被迫使用 Thread.Sleep(),我不想使用它,它不是好的做法。
有人能告诉我如何解决这个问题,提前谢谢你