如何获取 HTML 文本框值?

Posted

技术标签:

【中文标题】如何获取 HTML 文本框值?【英文标题】:How to get HTML textbox value? 【发布时间】:2014-07-28 07:42:02 【问题描述】:

我正在尝试在 C# WinForms 应用程序中获取网站上几个文本框的值。 它是输入类型文本,设置为只读,但是当我尝试在我的应用程序中使用

string price = webBrowser1.Document.GetElementById("price").GetAttribute("value");

它返回一个空字符串。 当我尝试使用.SetAttribute("value", "testValue") 设置一些其他(非只读)输入值时,它工作得很好。

有人可以帮我解决这个问题吗?

【问题讨论】:

【参考方案1】:

很遗憾,无法使用GetAttribute 检索文本框中的值。

您可以使用以下代码来检索该值:

dynamic elePrice = webBrowser.Document.GetElementById("price").DomElement;
string sValue = elePrice.value;

如果您无法使用 dynamic(即 .NET 4+),则必须从 Visual Studio 的 COM 选项卡中引用“Microsoft html 对象库”并使用以下内容:

mshtml.IHTMLInputElement elePrice = (mshtml.IHTMLInputElement)webBrowser.Document.GetElementById("price").DomElement;
string sValue = elePrice.value;

编辑: 已使用以下代码进行了测试:

webBrowser.Url = new Uri("http://files.jga.so/***/input.html");

webBrowser.DocumentCompleted += (sender, eventArgs) =>

     var eleNormal = (IHTMLInputElement)webBrowser.Document.GetElementById("normal").DomElement;
     var eleReadOnly = (IHTMLInputElement)webBrowser.Document.GetElementById("readonly").DomElement;
     var eleDisabled = (IHTMLInputElement)webBrowser.Document.GetElementById("disabled").DomElement;

     MessageBox.Show(eleNormal.value);
     MessageBox.Show(eleReadOnly.value);
     MessageBox.Show(eleDisabled.value);
;

【讨论】:

这两个都在字符串中返回 null :( 我添加了一个额外的代码示例,以确保 .value 获取禁用和只读输入。他们似乎工作。你能举一个你试图阅读的网址的例子吗? brainwallet.org 试图读取私钥和地址(我在这里写了价格只是为了让示例更清楚,文本框称为“sec”和“addr”) 通过浏览器控件测试此 URL 我收到许多脚本错误,并且未填充“私钥”字段。 “秘密指数”字段已填充(id="hash"),我可以通过编程方式读取它。 Web 浏览器控件是 Internet Explorer 7 的嵌入式版本,因此他们的 javascript 可能不支持此版本。是否需要嵌入网络浏览器控件,是否可以使用可以控制其他浏览器的 Selenium? 您可以使用 Selenium 启动和控制 Web 浏览器。它通常用于 Web 应用程序的测试自动化。可以在此处下载 C# API:docs.seleniumhq.org/download,其中包含文档。【参考方案2】:

尝试使用内文

string price = webBrowser1.Document.GetElementById("price").InnerText;

【讨论】:

以上是关于如何获取 HTML 文本框值?的主要内容,如果未能解决你的问题,请参考以下文章

Windows Store App XAML - 如何获取导航页面的文本框值

Windows 商店应用程序 WInRT XAML C# - 如何获取导航页面文本框值

如何在 asp.net 代码中获取引导文本框值并在存储过程中作为参数发送?

java swing如何把获取的文本框值添加到Table表格中,能否给个简单的例子,急用!急用!谢谢

Kendo UI:在按钮单击时获取文本框值

如何使用 jQuery 获取多个选择框值?