0

我正在制作一个访问特定网址的机器人,以表单形式输入并通过单击提交按钮提交...

让我解释一下我的情况。当我启动我的机器人时,首先它访问 URL,在加载网页后,我必须在那里手动检查一个单选按钮,然后我按下提交按钮(Windows 表单控制按钮来填充网页的所有字段并提交它通过使用调用点击方法)提交表单。

我正在使用 Web 浏览器控件(以 C#.NET 窗口形式编码),问题是当我单击单选按钮时,会弹出一个带有标题“脚本错误”的弹出窗口并说在此处输入图像描述

下面是我使用IE开发工具复制的单选按钮标签(弹出错误)。

<input name="array(BlastDatabaseType)" onchange="changeQuestion(); changeAlgorithms();"
type="radio" value="Proteins"/>

在普通的网络浏览器上不会发生此错误。我想解决这个错误而不是隐藏。

4

2 回答 2

4

我从您的问题中了解到,您需要修复由于 Web 浏览器控制而生成的 javascript 错误,

有两个基本的解决方案,

1)强制 Web Browser 控件模拟最新的 IE 浏览器。您需要为此进行注册表更改,您将能够使用安装在 PC 上的 IE 浏览器。

改编自Mikel 解决方案您可以在 HTML 页面
中使用元标记。<meta http-equiv="X-UA-Compatible" content="IE=9" >

但最好将注册表项添加到:(goto > start > run > type 'regedit' enter)

HKEY_LOCAL_MACHINE (or HKEY_CURRENT_USER) > SOFTWARE > Microsoft > Internet Explorer > Main > FeatureControl > FEATURE_BROWSER_EMULATION > contoso.exe = (DWORD) 00009000

用于10000 (0x02710)Internet Explorer 10

2)使用GeckoFX包装器,它包装了Gecko引擎,
下载GeckoFX包装器
下载XulRunner

首先提取 GeckoFX 并阅读 readme.txt 文件。

在您的工具栏中添加 Gecko.dll 的引用,然后将控件拖放到您的窗体上。

public Form1()
    {
        InitializeComponent();
        //you need to extract the Xulrunner in the soultion directory
        //  (preferable) b/c wrapper relies on these dlls.
        Skybound.Gecko.Xpcom.Initialize(@"C:\Xulrunner");
    }

    private void Form1_Load(object sender, EventArgs e)
    {
       geckoWebBrowser1.Navigate("http://tritrypdb.org/tritrypdb/"); 
    }


其他有用的链接:
http://msdn.microsoft.com/en-us/library/ee330730%28VS.85%29.aspx#browser_emulation
IE9 WebBrowser 控件是否支持 IE9 的所有功能,包括 SVG?

于 2012-09-19T15:56:31.853 回答
0

IE 以不同的方式处理 onchange 事件。IE 仅在元素失去焦点时触发 onchange 事件。

如果我正确理解了您的问题,您可能想改用 onkeypress 事件。

于 2012-09-17T19:47:57.713 回答