WinForms
を使用していると仮定すると、コントロールのDocument
プロパティを使用できます。これは、タイプHtmlDocument
のオブジェクトを返します。 HtmlDocument
は、HtmlElement
のオブジェクトを返すメソッドGetElementById
を順に持っています。 OuterHtml
プロパティには、最終的にテキストボックスに関する情報が含まれています。 Regex
表現を使用すると、必要な情報
HtmlElement tb = webBrowser1.Document.GetElementById("firstname");
string outerHtml = tb.OuterHtml;
// Yields a text which looks like this
// <INPUT id=firstname class=inputtext value=SomeValue type=text name=firstname>
string text = Regex.Match(outerHtml, @"value=(.*) type=text").Groups[1].Value;
// text => "SomeValue"
私はHTML-DOMオブジェクトモデルにアクセスすることができることを好むだろう
を抽出することができます。しかし、それはC#から隠されているようです。
EDIT:
コンボボックスは、情報の異なる種類をもたらします。ここではInnerHtml
を使用しています。
HtmlElement cb = webBrowser1.Document.GetElementById("sex");
string innerHtml = cb.InnerHtml;
// Yields a text which looks like this where the selected option is marked with "selected"
// <OPTION value=0>Select Sex:</OPTION><OPTION value=1>Female</OPTION><OPTION selected value=2>Male</OPTION>
Match match = Regex.Match(innerHtml, @"<OPTION selected value=(\d+)>(.*?)</OPTION>");
string optionValue = match.Groups[1].Value;
string optionText = match.Groups[2].Value;
古典的な答え[何を試しましたか](http://mattgemmell.com/2008/12/08/what-have-you-tried/) –
FacebookにはAPIがありますが、右?それはこれを行う*正しい*方法だろう... –