Ich habe gerade angefangen, mit htmlagilitypack zu arbeiten, und ich liebe es bis jetzt.
Ich versuche, einen Radiobutton auszuwählen und ein Formular mit htmlagility zu senden.
Hier ist die Struktur der Website:
<form class="picker" action="link.html" method="POST">
<ul class="selection-list">
<li>
<label>
<span class="left-side">
<input name="id" value="t1" type="radio">
</span>
<span class="right-side">
Test1
</span>
</label>
</li>
<li>
<label>
<span class="left-side">
<input name="id" value="t2" type="radio">
</span>
<span class="right-side">
Test2
</span>
</label>
</li>
<li>
<label>
<span class="left-side">
<input name="id" value="t3" type="radio">
</span>
<span class="right-side">
Test3
</span>
</label>
</li>
</ul>
</form>
Ich kann das Formular bekommen. Hier ist der Code:
HtmlWeb web = new HtmlWeb();
HtmlDocument doc = web.Load(urlAddress);
// Get the form
var form = doc.DocumentNode.SelectSingleNode("//form[@class='picker']");
Wie kann ich zum Beispiel die auswählen
Vielen Dank
var uri = // get uri from form;
var formVariables = new List<KeyValuePair<string, string>>();
// Populate your variables here; HtmlAgilityPack is useful for propagating existing form values
formVariables.Add(new KeyValuePair<string,string>("id","t2"));
var formContent = new FormUrlEncodedContent(formVariables);
using (var message = new HttpRequestMessage { Method = HttpMethod.Post, RequestUri = uri, Content = formContent })
{
// use HttpClient to send the message
using (var postResponse = await client.SendAsync(message))
{
if (postResponse.IsSuccessStatusCode)
{
var stringContent = await response.Content.ReadAsStringAsync();
// Do something with string content
}
}
}