Пробую выполнять действия на сайте с помощью библиотеки 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();
}
}
Потому что нужно делать submit form (отправку формы). Что-то в духе:
var document = browsingContext.Active.QuerySelector<IHtmlFormElement>("form#login").SubmitAsync(new
{
do = "login",
url = "/log-in.php",
}).Result;
Не очень удобно, что у вас форма не имеет id или класса - так что подбирайте селектор.
И проверить ваш пример не могу, так как не приведён пример сайта, а создавать код - долго, но у меня подобный код является вполне рабочим.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Мне необходимо отслеживать некоторые изменения в реестре (HKLM, HKCU)Я пытался применить WMI RegistryKeyChangeEvent для решения данной проблемы, но он не поддерживает...
Использую библиотеку https://githubcom/SeppPenner/MoneroMiner Пытаюсь запустить по стандартному примеру, который также там есть
Пытаюсь познакомиться с работой WinAPI в C#Нужно сделать mouse hook, который будет следить за движением мыши по всему экрану и получать координаты...
Всем приветУже несколько дней ломаю голову над одной проблемой