我正在制作访问特定网址的机器人,以表格形式提供输入并通过点击提交按钮提交...
让我解释一下我的情况。当我启动我的机器人时,首先访问URL,在加载网页后,我必须手动检查一个单选按钮,然后按下提交按钮(窗体控制按钮填充网页的所有字段并提交它通过使用invoke click方法)来提交表单。
我正在使用Web浏览器控件(在C#.NET窗体中编码),问题是当我点击一个单选按钮时,会弹出一个弹出窗口,标题为“脚本错误”并显示
下面是我使用IE开发工具复制的单选按钮标签(弹出错误)。
<input name="array(BlastDatabaseType)" onchange="changeQuestion(); changeAlgorithms();"
type="radio" value="Proteins"/>
在普通网络浏览器上不会发生此错误。 我想解决这个错误,不要隐藏。
答案 0 :(得分:4)
我从您的问题中了解到您需要修复由于Web浏览器控件而生成的javascript错误,
有两种基本解决方案,
1)强制Web浏览器控件模拟最新的IE浏览器。 您需要对此进行注册表更改,并且您将能够使用PC上安装的IE浏览器。
改编自Mikel Solution
您可以在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 wrapper
下载 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
Will the IE9 WebBrowser Control Support all of IE9's features, including SVG?
答案 1 :(得分:0)
IE处理onchange事件的方式不同。 IE仅在元素失去焦点时触发onchange事件。
如果我理解你的问题,你可能想要使用onkeypress事件。