当前位置:编程学习 > C#/ASP.NET >>

像百度知道回答问题时,点击页面输入框出现图片验证码,如何用WebBrowser来实现让图片了出来呢


如上图,请问怎么实现呢?
我感觉是不是点击那个输入框的话会触发一个JavaScript的函数,由函数从服务器得到图片并显示出来,但是看不到点击事件和哪个方法关联的呢? JavaScript输入框图像验证码  --------------------编程问答-------------------- 后台有处理,你看不到代码 --------------------编程问答-------------------- 没人看啊!!再说具体一点,JavaScript生成的页面代码怎么在WebBrowser得到呢? --------------------编程问答-------------------- 如果你可以绕过验证码,那么你就发现了一个bug。不要期望这个bug可以工作很长时间。 --------------------编程问答-------------------- 输入框有个onfocus事件啊。。。
事件中判断一下图片的url有没有设定,没有就设定。。。就这么简单啊 --------------------编程问答--------------------
引用 3 楼 jiangsheng 的回复:
如果你可以绕过验证码,那么你就发现了一个bug。不要期望这个bug可以工作很长时间。

我的意思 不是绕过这个验证码,我发现是在WebBrowser加载完成页面后,一看WebBrowser的DocumentText全是一些JavaScript,那个输入框好像是一个页面
<iframe id="ueditor_0" width="100%" height="100%" frameborder="0" scroll="no">

    #document
        <!DOCTYPE html>
        <html class="view" xmlns="http://www.w3.org/1999/xhtml">
            <head>
                <style type="text/css"> … </style>
                <style id="pre"> … </style>
                <style id="list"> … </style>
            </head>
            <body contenteditable="true" spellcheck="false" style="overflow-y: hidden;">
                <p> … </p>
            </body>
        </html>

</iframe>
问题是这些代码都是JavaScript生成的,WebBrowser里看不到这些,我怎么得到这些呢?webBorwser.docuemnt.getelementbytag("")这种代码不会执行。 --------------------编程问答-------------------- ajax实现局部刷新http://www.sj17178.com/7335044.411107.aspx --------------------编程问答--------------------
引用 4 楼 starfd 的回复:
输入框有个onfocus事件啊。。。
事件中判断一下图片的url有没有设定,没有就设定。。。就这么简单啊

我没有看到这个事件,在FireFox下就看到
  <body contenteditable="true" spellcheck="false" style="overflow-y: hidden;">
                <p> … </p>
            </body>
并且像textarea这种标记也没有
--------------------编程问答-------------------- --------------------编程问答-------------------- 用 webbrowser控件 的 documenet.getelementbyname("你的文本框的name").focus(); --------------------编程问答--------------------
引用 8 楼 jiangsheng 的回复:
DocumentText读不到脚本的更改,可以用HTML元素的outerhtml属性来读

不是太明白,能具体点吗?我现在可用的只有一个WebBrowser --------------------编程问答--------------------
引用 9 楼 l397870376 的回复:
用 webbrowser控件 的 documenet.getelementbyname("你的文本框的name").focus();

这种方法得不到元素,因为这些元素是JavaScript脚本生成的, --------------------编程问答-------------------- 那我怎么得到这个元素呢?在WebBrowser中没有实现, --------------------编程问答--------------------
引用 12 楼 xingeddx 的回复:
那我怎么得到这个元素呢?在WebBrowser中没有实现,


去看webbrowser.document的msdn --------------------编程问答--------------------
引用 13 楼 yuwenge 的回复:
Quote: 引用 12 楼 xingeddx 的回复:

那我怎么得到这个元素呢?在WebBrowser中没有实现,


去看webbrowser.document的msdn

我看了,实现不了,因为页面的元素是JavaScript生成的,我现在的思路 是把自己写的一段JavaScript代码嵌入到WebBrowser中,能嵌入到Body但是不能执行,现在我想嵌入到Head中,用字符串的方式来Write到Head中的话,页面中的汉字全变成乱码了。。。 --------------------编程问答--------------------
引用 14 楼 xingeddx 的回复:
Quote: 引用 13 楼 yuwenge 的回复:

Quote: 引用 12 楼 xingeddx 的回复:

那我怎么得到这个元素呢?在WebBrowser中没有实现,


去看webbrowser.document的msdn

我看了,实现不了,因为页面的元素是JavaScript生成的,我现在的思路 是把自己写的一段JavaScript代码嵌入到WebBrowser中,能嵌入到Body但是不能执行,现在我想嵌入到Head中,用字符串的方式来Write到Head中的话,页面中的汉字全变成乱码了。。。

你肯定没看完,document对象可以触发页面上的任意事件。 --------------------编程问答-------------------- --------------------编程问答-------------------- httpwatch,抓包 --------------------编程问答--------------------
引用 17 楼 xiaoa_m 的回复:
httpwatch,抓包

这位兄弟说的有道理,但是我在抓包后,自己模拟一下发送内容,有些头部如Cookie不能计算了出结果
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,