指定的转换无效。C# WebBrowser

3
url="https://ipv4.google.com/sorry/IndexRedirect?continue=https://www.google.com/search%3Fq%3Dstackoverflow%2B%26rlz%3D1C1KMZB_enTR561TR561%26oq%3Dstac%26aqs%3Dchrome.1.69i59l3j69i60j69i57j69i60.5208j0j7%26sourceid%3Dchrome%26espv%3D210%26es_sm%3D122%26ie%3DUTF-8";

webBrowser1.Navigate(url);

if (url.Contains("ipv4.google.com"))
{
    frm2.ShowDialog();
    Application.DoEvents();
    webBrowser1.Document.GetElementById("captcha").SetAttribute("value", frm2.code);
    webBrowser1.Document.GetElementById("submit").InvokeMember("click");
}

异常信息为:

指定的转换无效。

发生位置:

webBrowser1.Document.GetElementById("captcha").SetAttribute("value", frm2.code);

frm2.Code的类型是什么?是字符串吗? - RononDex
是的,Form2 公共字符串代码 = ""; 代码 = textBox1.Text; - BuuRoCk
1
无论你认为"Application.DoEvents();"这行代码解决了什么问题...它并没有。它只是隐藏了症状,问题仍然存在。移除这行代码并正确地处理问题。 - nvoigt
卸载了但是还是一样 :(( - BuuRoCk
2个回答

0

在文档加载完成后再使用它。

string url = "https://ipv4.google.com/sorry/IndexRedirect?continue=https://www.google.com/search%3Fq%3Dstackoverflow%2B%26rlz%3D1C1KMZB_enTR561TR561%26oq%3Dstac%26aqs%3Dchrome.1.69i59l3j69i60j69i57j69i60.5208j0j7%26sourceid%3Dchrome%26espv%3D210%26es_sm%3D122%26ie%3DUTF-8";

WebBrowser webBrowser1 = new WebBrowser();
this.Controls.Add(webBrowser1);
webBrowser1.Dock = DockStyle.Fill;

webBrowser1.Navigate(url);

if (url.Contains("ipv4.google.com"))
{
    webBrowser1.DocumentCompleted += handler;
}

private void handler(object sender, WebBrowserDocumentCompletedEventArgs e)
    {
        frm2.ShowDialog();
        webBrowser1.Document.GetElementById("captcha").SetAttribute("value", frm2.code);
        webBrowser1.Document.GetElementById("submit").InvokeMember("click");

        webBrowser1.DocumentCompleted -= handler;
    };

问题 Webbrowser 文档:“由于先前的函数评估超时,功能评估已禁用。您必须继续执行以重新启用函数评估。” - BuuRoCk
doc = null element = null :(( - BuuRoCk
在哪一行?还是webBrowser.Document吗? - Patrick Hofman
您发送的图像并非错误,只是Visual Studio在评估属性时遇到了困难。 - Patrick Hofman

0

我认为你的webBrowser1在你尝试访问它时没有加载文档。你应该将if语句中的代码放到webBrowser1.Navigate事件处理程序中。此时,webBrowser已经完全加载了url后面的文档。


你能举个例子吗? - BuuRoCk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接