C#webbrowser控件(执行与表单关联的所有javascripts)

Ali*_*Ali 6 c# forms webbrowser-control

我试图使用webbrowser控件自动提交表单.我使用以下代码提交"

currentElement.InvokeMember("submit");
Run Code Online (Sandbox Code Playgroud)

现在这种方法工作正常.但有时一个表单可能有一些javascript函数,在提交时按钮点击调用.所以,假设一个表单有一个名为"Submit"的按钮图像,当用户按下它时,调用一个javascript函数somefunction(),然后提交表单.

问题是当我使用上面的方法InvokeMember然后它只提交表单并且不执行相关的脚本(在这种情况下是somefunction())并且我必须手动编写代码

webBrowser1.Document.InvokeScript("somefunction");
Run Code Online (Sandbox Code Playgroud)

但这需要事先知道是否有某些功能.有什么方法我提交表单,它会自动运行所有相关的JavaScript?

而且我不知道用户点击提交表单的按钮名称或ID.因为在某些情况下它甚至可能没有ID或名称

<span class="btn" onclick="somefunction()">
<img style="cursor:pointer" title="Submit" alt="Submit" src="http://stackoverflow.com/imagesbutton.png?2012">
<div id="s" style=""></div>
</span>
Run Code Online (Sandbox Code Playgroud)

Der*_*ean 2

我已经有一段时间没有摆弄 WebBrowser 控件了,但我曾经让它为我跳过障碍。我过去遇到过这个问题。

http://www.codeproject.com/Tips/60924/Using-WebBrowser-Document-InvokeScript-to-mess-aro

当你得到一个Form对象时,从 中取出字符串OnSubmit并在提交表单之前运行它来执行它:

object[] codeString = {"myObject.setVariable(0);"};
webBrowser1.Document.InvokeScript("eval",codeString);
Run Code Online (Sandbox Code Playgroud)

奇迹般有效。