C#:基于.NET的网络浏览器不显示图像 - javascript

我是C#语言的新手,我一直在尝试使用基于.NET的Web浏览器来自动化网站,仅在Visual Studio 2015中供个人使用。

我已经完成了文档解析,使用了Timer,正确使用了DocumentCompleted事件,以等待网页完全加载,然后解析内容,尝试使异步事件的行为类似于同步事件(以加载通过单击链接进入生成的HTML内容。一个完整的网页),以完成网页自动化的各个阶段:登录->在车站之间搭乘火车->单击立即预订链接->进入下一页并填写乘客详细信息。

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

我以为我的项目中有一些错误的代码正在停止加载验证码,因此,我创建了一个非常基础的新项目,仅在代码下方添加了代码,并亲自浏览了不同的阶段,以查看验证码是否真正加载了,但不幸的是无法加载。

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)
        {

        }
    }
}

请看下面。高亮部分是我期望验证码的地方。

C#:基于.NET的网络浏览器不显示图像 - javascript

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

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

Internet Explorer也从后面使用.NET浏览器,但是在使用IE时,我可以看到验证码已加载。因此,为什么在.NET浏览器中未调用此javascript调用$(document).ready。请看下面:

C#:基于.NET的网络浏览器不显示图像 - javascript

后来我尝试在一个新的新项目中使用CefSharp,我可以看到验证码已加载到其基于铬的Web浏览器中。但是我已经使用基于.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>

javascript参考方案

此处共享答案:Use latest version of Internet Explorer in the webbrowser control解决了我的问题。

我基本上必须更改Web浏览器控件使用的IE版本。

感谢Matthias herrmann

提交初始化后删除某些帖子数据 - javascript

在初始化提交之后但在将数据发送到处理页面之前,是否可以过滤$ _POST表单数据?我想象过程的方式:提交->收集$ _POST数据->发送数据我想做的事:提交->收集$ _POST数据->删除某些元素->发送数据这样就不必更改处理页面以过滤掉不希望接收的元素了吗? javascript大神给出的解决方案 当然可以,您可以在JS …

写一行到javascript文件 - javascript

我正在使用数组来显示网站中的一些图像:var paintingImages; paintingImages = [ { url: 'images/objects/ron.jpg', alt: 'ron' } ]; 该js代码写在paintings.js中,我的主要js代码写在main.js文件中我已经为艺术家制作了这个…

在JavaScript中运行方法C# - javascript

打扰一下,我有这种C#asp方法。受保护的无效btnSave_Click(对象发送者,EventArgs e)有谁知道我该如何发送脚本给您?可以办到?。 javascript大神给出的解决方案 是的,那可以做到。为此,您在.aspx.cs页中创建了函数,然后单击保存按钮上的代码将其复制到函数中,然后执行以下步骤。//Call cs method from J…

如何从客户端将数据插入数据库? - javascript

我是Web开发的初学者,可以访问cpanel上托管的网站,并且需要对其进行一些更改。这个网站的后端是由蛋糕PHP制作的,我想使用ajax从客户端将一些数据插入其数据库。问题是我不知道如何获取负责插入数据库的PHP文件的URL。参见下面的代码:var xhttp = newXMLHttpRequest(); xhttp.onreadystatechange= …

跨python套接字将JSON传递给Javascript - javascript

我正在使用python套接字与JavaScript客户端进行通信。http://docs.python.org/2/library/socket.html然后遵循JavaScript代码的一部分,ws = new WebSocket("ws://localhost:7777/"); ws.onopen = function(){ aler…