【发布时间】:2019-04-07 13:06:42
【问题描述】:
我正在使用 CefSharp winform 我尝试登录网站..
但是这个网站使用 ajax 这意味着网站页面不会重新加载以获取源代码
那么我怎么知道 AJAX 是否完成?
我需要类似的东西或任何其他解决方案
var cvbar = chrom.EvaluateScriptAsync("Is AJAX completed ??")
var response = cvbar.Result;
if (response.Success == true && response.Result.ToString() != "")
{
// MessageBox.Show(response.Result.ToString());
}
var response1 = cvbar1.Result;
string HTML = await chrom.GetSourceAsync();
【问题讨论】:
-
无论是否使用 AJAX,都必须有一个 URL/入口点用于用户身份验证。尝试将所有凭据数据发布到该入口点,您应该会得到响应,无论是有效的还是其他的。从此,做你想做的事。
-
iam 尝试登录到此页面,如果登录不成功将被标记为“用户名或密码有效”,但除非 ajax 完成,否则不会发生,所以我怎么知道“如果 ajax 完成”然后我检查页面来源
-
也许我遗漏了一些东西 + 我过去只玩过一点 CefSharp,所以不确定这是一个正统的解决方案,但您是否尝试过在 javascript 中绑定对象?然后,您可以从 javascript 调用您的 c# 委托:stackoverflow.com/questions/23425059/…
-
你能设置一个等待的计时器吗,例如20秒?在 XMLHttpRequest 应该完成它的工作后,再次检查当前页面的响应。或者你需要研究页面的JS代码,找出哪个JS对象被改变了,然后你可以使用EvaluateScriptAsync来评估状态。
-
@wannadream 查看我的链接,这不是传递响应的有效机制吗?那么它就不需要基于计时器,并且具有按照您在第一条评论中建议的方式进行操作的优势。