C# donetbrowser如何从Dotnetbrowser获取过账表单数据?
我需要帮助才能从Dotnetbrowser获取过账表单数据。 事实上,我想在按钮上添加一个侦听器事件,当单击此按钮时,我会得到数据,例如:C# donetbrowser如何从Dotnetbrowser获取过账表单数据?,c#,html,post,postdata,dotnetbrowser,C#,Html,Post,Postdata,Dotnetbrowser,我需要帮助才能从Dotnetbrowser获取过账表单数据。 事实上,我想在按钮上添加一个侦听器事件,当单击此按钮时,我会得到数据,例如: <!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>Hello!!!</h1><br> <form id="formTrying"
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Hello!!!</h1><br>
<form
id="formTrying"
method="post"
action="http://localhost/MyWebSite/MyMvcView?MyQueryStringParam1=something&Param2=something"
>
<input name="txtSomething" type="text" value="Trying something..."><br>
<input type="submit" value="Submit...">
</form>
</body>
</html>
你好
当我点击submit按钮时,我从“txtSomething”中获取值。
或者当dotnetbrowser检测到表单提交时,我从“txtSomething”中获取值
先谢谢你 您可以尝试为相应的DOM元素注册一个
OnClick
事件监听器,以获得有关单击的通知
在您的情况下,可以按如下所示执行此操作:
browser.FinishLoadingFrameEvent += delegate (object sender, FinishLoadingEventArgs e)
{
if (e.IsMainFrame)
{
DOMDocument document = e.Browser.GetDocument();
List<DOMNode> inputNodes = document.GetElementsByTagName("input");
DOMInputElement submitElement = (DOMInputElement)inputNodes.LastOrDefault();
DOMEventHandler domEvent = delegate (object s, DOMEventArgs args)
{
//Obtain the value of the txtSomething field
DOMInputElement txtSomethingElement = (DOMInputElement)document.GetElementByName("txtSomething");
string value = txtSomethingElement.Value;
Console.Out.WriteLine("txtSomething value = " + value);
};
submitElement.AddEventListener(DOMEventType.OnClick, domEvent, false);
}
};
browser.LoadHTML(@"<!DOCTYPE html>
<html lang='en' xmlns='http://www.w3.org/1999/xhtml'>
<body>
<h1>Hello!!!</h1><br>
<form
id='formTrying'
method='post'
action='http://localhost/MyWebSite/MyMvcView?MyQueryStringParam1=something&Param2=something'
>
<input name='txtSomething' type='text' value='Trying something...'><br>
<input type='submit' value='Submit...'>
</form>
</body>
</html>");
browser.FinishLoadingFrameEvent+=委托(对象发送方,FinishLoadingEventArgs e)
{
if(e.IsMainFrame)
{
DOMDocument document=e.Browser.GetDocument();
List inputNodes=document.GetElementsByTagName(“输入”);
DOMInputElement submitElement=(DOMInputElement)inputNodes.LastOrDefault();
DOMEventHandler domEvent=委托(对象s,DOMEventArgs args)
{
//获取txtSomething字段的值
DOMInputElement txtSomethingElement=(DOMInputElement)document.GetElementByName(“txtSomething”);
字符串值=txtSomethingElement.value;
Console.Out.WriteLine(“txtSomething value=“+value”);
};
submitement.AddEventListener(DOMEventType.OnClick,domEvent,false);
}
};
browser.LoadHTML(@)
你好!!!
");
下面的文章详细说明了如何注册DOM事件侦听器:
此外,还有一篇文章介绍了如何以编程方式设置表单字段的值:
. 示例中的
值
和选中的
属性是读写属性,与JavaScript中可用的值
和选中的
属性相对应 关键是,输入的值设置为value=“Trying something…”,当我使用它时,我有原始值,而不是更新的值,初始值仅用于信息目的,但不是我想要的值。如果用户插入另一个值,我期望的是,我无法获取此信息,只能获取初始值。您是否使用GetAttribute(“值”)
获取该值?在这种情况下,您需要改用DOMFormControlElement.Value
属性。这里解释了属性和属性之间的区别:谢谢,这正是我想要的。