我正在尝试使用计时器,请在运行 browser.Reload(); 方法
后检查页面是否已完成重新加载我无法使用LoadingStateChange,因为我需要完全加载页面并在加载后仅运行脚本一次
我的代码:
public void initTimer()
{
RunScriptAsync(); // this method is executing every one second
}
public bool reloadpage = false; // make the page reload some one time
private async void RunScriptAsync()
{
if (!reloadpage)
{
reloadpage = true;
browser.Reload();
}
var taskcheckdocument = browser.GetMainFrame().EvaluateScriptAsync("(function(){return (document.readyState === 'ready' || document.readyState === 'complete')})();", null);
taskcheckdocument.ContinueWith(check =>
{
if (check.Result != null && check.Result.Result != null && check.Result.Result.ToString().Equals("True"))
{
//execute async script
}
}, TaskScheduler.FromCurrentSynchronizationContext);
}
但是此代码存在问题,taskcheck文档不会等待浏览器.Reload()方法终止,并且已经执行,因此无需重新加载页面即可执行。
如何使browser.Reload()方法完成运行以执行其下面的代码?