Пробую выполнять действия на сайте с помощью библиотеки AngleSharp. Остановился на эмуляции нажатия кнопки.
Часть html кода отвечающий за авторизацию на сайте.
<form action="login.php?do=login" method="post" onsubmit="md5hash(vb_login_password, vb_login_md5password, vb_login_md5password_utf, )">
<input type="hidden" name="do" value="login" />
<input type="hidden" name="url" value="/log-in.php" />
<input type="hidden" name="vb_login_md5password" />
<input type="hidden" name="vb_login_md5password_utf" />
<input type="hidden" name="s" value="" />
<input type="hidden" name="securitytoken" value="guest" />
<table cellpadding="0" cellspacing="3" border="0" align="center">
<tr>
<td>Email<br /><input type="text" class="bginput" name="vb_login_username" size="50" accesskey="u" tabindex="1" /></td>
</tr>
<tr>
<td>Pass<br /><input type="password" class="bginput" name="vb_login_password" size="50" tabindex="1" /></td>
</tr>
<tr>
<td align="right">
<input type="submit" class="button" value="Вход" accesskey="s" tabindex="1" />
<input type="reset" class="button" value="Сброс" accesskey="r" tabindex="1" />
</td>
</tr>
</table>
</form>
Начал с проверки нажатия кнопки "Сброс". Для этого заполнил поля ввода логина и пароля, и проверил заполнились ли они, да они заполнились.
Затем выполнил эмуляцию нажатия кнопки, но похоже она не сработала. Т.к потом еще раз прошелся по циклом по странице, но введенные значения логина и пароля остались, то есть нажатие на кнопку не сработало.
Что я делаю не так?
foreach (IElement element in document.Body.QuerySelectorAll("div.panel > div > form > table > tbody > tr > td > input"))
{
if (element.GetAttribute("type") == "text")
{
element.SetAttribute("value", email);
Console.WriteLine(element.GetAttribute("value")); // проверка, изменился ли атрибут value
}
else if (element.GetAttribute("type") == "password")
{
element.SetAttribute("value", pass);
Console.WriteLine(element.GetAttribute("value"));
}
else if (element.GetAttribute("type") == "reset")
{
IHtmlElement div = (IHtmlElement)element;
div.DoClick();
}
}