QWebView и авто заполнение полей формы

Вчера весь вечер штурмовал гугл по поводу как в webview автоматически заполнить форму данными, жать толкового ничего не нашел, но спасибо советам и примерам ребят с форума cyberforum.ru, после пары экспериментов то я нашел рабочее и наверно самое правильное решение.

Чтобы заполнить поля на странице нужно использовать javascript, для начала его составим, подопытным кроликом будет форма авторизации на vtope.in, нас там интересует 2 поля логин и пароль

<td colspan="2">Email:<BR /><input name="log_email" type="text" size="23" maxlength="35" class="lg"/></td>
<td colspan="2">Пароль :<BR /><input name="pass" type="password" size="23" maxlength="35" class="ps"/></td>

javascript код будет универсален для всех сайтов, только нужно будет менять имена полей

document.getElementsByName(\"log_email\")[0].value = \"test@mail.ru\";
document.getElementsByName(\"pass\")[0].value = \"12345\";

и после загрузки страницы(это сигнал loadFinished ) нужно будет применить наш javascript код на странице

QString script = "document.getElementsByName(\"log_email\")[0].value = \"test@mail.ru\"; document.getElementsByName(\"pass\")[0].value = \"12345\";";
webView->page()->mainFrame()->evaluateJavaScript(script);

Вот так всё оказалось  просто.

 

7 thoughts on “QWebView и авто заполнение полей формы

  1. Зачем же так иронично, если честно я вообще не пойму зачем это делать. Если причина в капче, то наверное проще генерировать только капчу, без загрузки всего хлама с сайта.

    • ну сгенерируй мне рекапчу в вебките, блесни умом, ато пиздеть все гаразд а на деле 0

  2. Не знаю что такого обидного я сказал, но генерировал на PyQT и PyGTK, и сольве и гуглокапчу. Просто почерпнул пару хороших идей у вас и решил поделиться своими. Если задел вас чем-то то извините, но опускаться до матов или пытаться доказывать что-то не в моем стиле. Поэтому давайте просто забудем наш разговор, коль вы считаете что я предложил что-то нереальное.

    • Я чет не заметил чтобы вы где-то делились хорошими идеями, поделится хорошей идеей выглядит так, «»Если причина в капче, то наверное проще генерировать только капчу, без загрузки всего хлама с сайта, вот например как делал я»» — и пример кода, вот это называется поделится чем-то хорошим и полезным, а слова «»ещё, как вариант отпарсить поля формы и слать готовый пост запрос»» — выглядит как — я капитан очевидность а вы все тут долбоебы.

  3. Ох, я же вроде извинился.
    Хоть как по мне ничего обидного не сказал. Проглотил иронию в первом ответе, хотя можно было бы просто указать мне на причину того почему была выбрана такая реализация, я ведь не видел что там под капотом. Во втором своем посте лишь сказал что не понимаю почему не генерировать капчу, ведь я не видел исходники, Возможно вы знали до меня как это сделать, но по какой-то причине нет возможности это реализовать. Возможно вы не задумывались над этим и после сказанного посмотрели бы на это с другой стороны и быстренько это реализовали. Я не гуру программирования, и в чём-то могу ошибаться, я просто выразил свою точку зрения, без матов, без иронии, надеясь лишь на конструктивный разговор. Но я до сих пор не знаю причин почему это сделано так а не по другому, и не могу увидеть свою ошибку или подтвердить вашу правоту. Я нигде не грубил, и старался быть максимально корректным — всего лишь сказал то что думаю.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *