Javascript 基于.NET的webbrowser不';不显示图像

Javascript 基于.NET的webbrowser不';不显示图像,javascript,c#,.net,visual-studio,Javascript,C#,.net,Visual Studio,我是C语言新手,我一直在尝试在Visual Studio 2015中使用基于.NET的webbrowser自动创建一个仅供个人使用的网站 我已经完成了文档解析,使用了计时器,正确地使用了DocumentCompleted事件来等待网页完全加载,然后解析内容,尝试使异步事件的行为类似于同步事件(以便加载通过单击完全加载的网页中的链接生成的HTML内容),etc完成网页自动化的各个阶段:登录->获取站间列车->单击“立即预订”链接->转到下一页并填写乘客详细信息 一切正常,但我现在处于最后阶段,即“

我是C语言新手,我一直在尝试在Visual Studio 2015中使用基于.NET的webbrowser自动创建一个仅供个人使用的网站

我已经完成了文档解析,使用了计时器,正确地使用了DocumentCompleted事件来等待网页完全加载,然后解析内容,尝试使异步事件的行为类似于同步事件(以便加载通过单击完全加载的网页中的链接生成的HTML内容),etc完成网页自动化的各个阶段:登录->获取站间列车->单击“立即预订”链接->转到下一页并填写乘客详细信息

一切正常,但我现在处于最后阶段,即“转到下一页并填写乘客详细信息”“有一个验证码图像,必须解析该图像才能转到付款页。不要误解我的意思,因为我不想自动解决此验证码。这里的问题是,我看不到captch图像,它只有在调用此javascript调用时才会加载
$(document).ready

我认为我的项目有一些错误代码,正在停止加载验证码,因此,我创建了一个非常基本的新项目,只添加了下面的代码,并浏览了不同的阶段,查看验证码是否真的加载,但不幸的是它不会加载

namespace TestWebBrowser
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            webBrowser1.Navigate("https://www.irctc.co.in/eticketing/loginHome.jsf");
        }

        private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {

        }
    }
}
请看下面。突出显示的部分是我期待验证码的地方

我必须告诉你,我不是一个网页设计师,因此我只了解网站工作的基本原理

我在这个论坛上问了几个问题,但没有任何帮助

Internet explorer也从后面使用.NET浏览器,但在使用IE时,我可以看到验证码正在加载。那么,为什么在.NET浏览器中没有调用此javascript调用
$(document).ready
。请参阅下文:

我后来尝试在一个新项目中使用
CefSharp
,我可以看到验证码正在其基于铬的网络浏览器中加载。但是我已经用基于.NET的webbrowser编写了很多代码,因此我现在想继续使用后者来解决这个问题

发生这种情况是因为.NET webbrowser正在使用一些非常旧的IE版本配置吗

请帮助我理解

更新1:添加javascript

<script type="text/javascript">
        $(document).ready(function(){
            var isJsBlocked=0;
            if (typeof(nlpLoadCaptchaAsync) == 'function'){                     
                nlpLoadCaptchaAsync();
            }else{
                isJsBlocked=1;
            }
            setTimeout(function(){
                var isNLPCaptcha = document.getElementById('nlpIdentifier');                        
                if(isNLPCaptcha == null || isNLPCaptcha=='' ) {
                    var nlptrack = new Image();
                    nlptrack.src="http://irctclive.nlpcaptcha.in/temp_redirect_count/irctc_timeout.php?ref=f2c5d744485b0b4251461454db791111&isJsBlocked="+isJsBlocked+"&dynamicParameter="+Date.now();
                    nlpCaptchaTimeOut(true);

                }

            }, 5000 ); 

        });  
        </script>

$(文档).ready(函数(){
var isJsBlocked=0;
如果(typeof(nlploadcaptchasync)==“函数”){
nlpLoadCaptchaAsync();
}否则{
isJsBlocked=1;
}
setTimeout(函数(){
var isNLPCaptcha=document.getElementById('nlpIdentifier');
如果(isNLPCaptcha==null | | isNLPCaptcha==“”){
var nlptrack=新图像();
nlptrack.src=”http://irctclive.nlpcaptcha.in/temp_redirect_count/irctc_timeout.php?ref=f2c5d744485b0b4251461454db791111&isJsBlocked=“+isJsBlocked+”&dynamicParameter=“+Date.now();
nlpCaptchaTimeOut(真);
}
}, 5000 ); 
});  
这里分享的答案是:解决了我的问题

我基本上不得不更改我的webbrowser控件使用的IE版本


多亏了Matthias herrmann

是否有可用于测试的url?很可能是javascript错误与IE不兼容,您问题中的url与我在浏览器中看到的不一样。@AlexanderHiggins:登录后,url会更改。这就是为什么您没有看到相同的URL。不幸的是,您必须使用
https://www.irctc.co.in/eticketing/loginHome.jsf
并使用正确的凭据登录,以转到有问题的页面。我还展示了IE浏览器中的图像。它将在那里加载,但不会在.NET浏览器中加载。@AlexanderHiggins:这是URL
https://www.irctc.co.in/eticketing/trainbetweenstns.jsf
验证码未加载到.NET浏览器中。从第一个URL登录后,您不能手动使用此URL再次在同一选项卡、新选项卡等中查看页面,因为它将再次登录到登录页面。@Rohit
$(文档)。ready
正在使用仅支持
Internet Explorer:9+
jQuery
库。您可能想看看这个问题:由于我无法回答,请确保您没有在webbrowser控件中抑制脚本错误。