我正在Selenium
ChromeDriver
上运行WebDriver
。页面上有一个繁重的同步javascript,可以运行很长时间(甚至30分钟)
在此页面上,我有一个函数getStatus()
,该函数返回任务是否已完成,但是当我执行browser.ExecuteScript("return getStatus()")
时,这当然会因超时而失败,因为该页面无法按原样执行此javascript正在执行另一个js执行。
Selenium
或Chrome WebDriver
是否还有其他方法可以告诉我当前是否正在执行大量JavaScript?
我的完整代码:
var chromeOptions = new ChromeOptions();
//chromeOptions.AddArguments("headless");
using (var browser = new ChromeDriver(chromeOptions))
{
browser.Url = url;
while (true) {
Dictionary<string, object> status =
(Dictionary<string, object>)browser.ExecuteScript("return getStatus()");
if ((bool)status["Finished"]) {
return
}
}
}