在c#中显示来自webbrowser的验证码

时间:2015-08-06 04:24:27

标签: c#

所以我正在尝试设置一个自动创建帐户的工具,但是用户需要完成验证码以验证它们是人类,我想获得验证码代码图像并将其显示给用户,我知道元素ID但是我如何获得一个组件(或者我将使用哪个组件)所以它只显示了webbroswer的一部分?

我的代码......

webBrowser1.Document.GetElementById("recaptcha_challenge_image")

但在那之后我不确定我会做什么?我尝试过像......

webBrowser1.Document.GetElementById("recaptcha_challenge_image") = pictureBox1.BackgroundImage;

我不太清楚我要尝试从哪个网站获取验证码是the docs

1 个答案:

答案 0 :(得分:0)

将您的代码放入 DocumentCompleted 事件中以确保文档已加载:

WebBrowser browser = new WebBrowser();
browser.DocumentCompleted += browser_DocumentCompleted;
browser.Navigate("https://account.sonyentertainmentnetwork.com/liquid/reg/account/create-account!input.action");

DocumentCompleted 事件会在验证码加载完成之前触发几次,因此在使用之前请检查null。该事件的代码如下所示:

void browser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
    {
        WebBrowser browser = (WebBrowser)sender;
        var item = browser.Document.GetElementById("recaptcha_challenge_image");
        if (item != null)
            pictureBox1.Load(item.GetAttribute("src"));
    }