C# c Webbrowser如何选择添加的dom元素(表单隐藏按钮)并单击按钮

C# c Webbrowser如何选择添加的dom元素(表单隐藏按钮)并单击按钮,c#,forms,webbrowser-control,C#,Forms,Webbrowser Control,简单地说 我正在尝试添加一个表单标记,其中包含一个隐藏按钮和一个提交按钮,以加载到c语言中的webbrowser中的网页。添加它之后,我想调用按钮上的click事件 我没有很多代码可以显示,因为我甚至无法接近。我在谷歌上找不到这样的例子 我曾尝试使用create元素,然后使用InsertAdjacentElement,当我检查HtmlDoc时,它似乎可以工作,但当我尝试通过ID获取元素时,它总是返回null System.Windows.Forms.HtmlDocument doc = harv

简单地说

我正在尝试添加一个表单标记,其中包含一个隐藏按钮和一个提交按钮,以加载到c语言中的webbrowser中的网页。添加它之后,我想调用按钮上的click事件

我没有很多代码可以显示,因为我甚至无法接近。我在谷歌上找不到这样的例子

我曾尝试使用create元素,然后使用InsertAdjacentElement,当我检查HtmlDoc时,它似乎可以工作,但当我尝试通过ID获取元素时,它总是返回null

System.Windows.Forms.HtmlDocument doc = harvester.Document;

string ftm = "<form Id = 'SD' method='POST' action='day.cfm'><input type='hidden' name='Day' value='" + selDay + "'><input id='SubmitDay' type='submit' value='View the Schedule'></form>";
var divElem = doc.CreateElement("div");
divElem.InnerText = ftm;
divElem = doc.Body.InsertAdjacentElement(HtmlElementInsertionOrientation.AfterBegin, divElem);

HtmlElement button = doc.GetElementById("SubmitDay");
// button = null, always.
谢谢你的帮助

图中显示了插入表单后的DOM

所以这里是代码工作。。。 仅供参考:selDay和wordDay只是包含日期的字符串变量

System.Windows.Forms.HtmlDocument doc = harvester.Document;
const string quote = "\"";
string ftm = "<form Id = 'SD' method='POST' action='schedule.cfm'><input type='hidden' name='Day' value=" + quote + selDay + quote+ ">" + wordDay + "<input id='SubmitDay' type='submit' value='View the Schedule'></form>";
var divElem = doc.CreateElement("div");
divElem.InnerHtml = ftm;
divElem = doc.Body.InsertAdjacentElement(HtmlElementInsertionOrientation.AfterBegin, divElem);

HtmlElement button = doc.GetElementById("SubmitDay");
button.InvokeMember("click");                

我会以不同的方式处理这个问题。与其尝试使用.NET HtmlElements创建HTML文档,我只需构造一个包含网页内容的字符串变量。作为其中的一部分,我将创建一个简短的javascript,当页面以不需要submit按钮的方式打开时会触发它

最后,在页面完成后,我会打开一个浏览器对象,它会完成它的工作


或者,您可以使用HttpPost类执行相同的操作,而无需创建网页。

根据屏幕截图,您正试图通过设置InnerText属性将HTML注入页面。从该属性的

如果尝试将HTML分配给具有InnerText的元素,HTML代码将在文档中显示为文本,就像在文本文件中查看HTML一样

这意味着您的表单和输入元素被注入到页面转义表单中,而不是,因此当您在DOM中搜索按钮时,它并不存在


尝试改用。

所有这些欺骗行为都是有原因的,而不是只从javascript提交表单而不使用隐藏的提交按钮吗?divElem.InnerText=ftm不会逃逸HTML吗?无论如何,我可能错了……这种欺骗不是恶意的,它是在winforms应用程序中自动执行基于浏览器的旧系统和可怕的系统。我试图做的是为员工收集日程安排细节,然后可以在winforms应用程序中引用这些细节,这样可以更好地处理这些细节,并且可以自动化其他必需的任务。简言之,我正在采取一个大约有15个步骤的过程,并将其减少到2或3.wgraham-添加它后,innerTEXT看起来是正确的。我还没有达到测试的目的。我会用不同的方式处理这个问题那太好了,但这不是我想要的。另外,你的回答对我所做的工作也不起作用,更不用说还有很多工作要做。谢谢,但让我们试着继续话题。我怀疑我是个白痴:谢谢你的回答。