2012-06-12 2 views
0

Я знаю, что это возможно в Perl, но мне было интересно, можно ли это сделать в PHP.Откройте окно, перейдите через него

Что я хочу сделать - это открыть браузер с окном, щелкнуть ссылку на этой странице или перейти в браузере, тогда у нее есть простой текстовый ящик, называемый тестом, и я хочу поместить текст в это поле, тогда нажмите кнопку «Отправить» и все сделано на PHP. Я знаю jQuery и Javascript, поэтому я в порядке, если часть этого небольшого проекта должна быть выполнена в любом из этих двух. Я провел некоторое исследование по этому вопросу и не смог найти четкого подхода к этому.

Мне не нужен письменный код для меня, мне просто нужен ответ с предложениями и, если возможно, небольшими кодами, чтобы сделать некоторые трюки.

Заранее спасибо.

-G

+0

У PHPUnit есть [Selenium bindings] (http://www.phpunit.de/manual/3.6/en/selenium.html), который должен сделать это возможным ... но функция отмечена как «частично реализована», а я не имеют никакого личного опыта с ним. Для этого я бы придерживался Perl. – Quentin

ответ

0

PHP это язык на стороне сервера, так что все будет сделано на сервере, и результат отправляется обратно пользователю, который будет отображаться в браузере. Вы не можете делать такие вещи в PHP. Лучше всего использовать javascript для ссылки на ссылки и отправки форм на странице ... но разум объясняет, для чего это необходимо, поэтому мы можем обеспечить способ сделать это?

Для этого в Javascript вы можете использовать jQuery's .click(), чтобы перейти по ссылкам и .submit(), чтобы отправить форму. Поскольку форма находится на второй странице, код отправки также должен быть на этой странице. Если вы действительно хотите автоматизировать это, вы можете загрузить первую страницу в iFrame и работать с файлами внутри, но обе страницы (родительский и iframe) должны находиться в одном домене. Чтобы обойти это, я бы написал расширение Chrome, которое вставляет небольшой контент-скрипт на эти страницы с помощью моего JS (файл щелчка/отправки).

В PHP вы можете загрузить первую страницу, проанализировать ссылку, которую вы хотите удалить, а затем загрузить эту страницу, определить форму, которая на ней, и использовать cURL для отправки этой формы. Вы можете использовать cURL для загрузки страниц. Вот урок о том, как get the contents of remote files using php.

+0

PHP - это язык программирования. Он чаще всего используется в качестве серверного языка для веб-программирования, но у него есть ноги за его пределами. – Quentin

+0

Вы можете использовать PHP-Cli, чтобы сделать PHP другим интерпретируемым языком для консоли Linux, поэтому ваш оператор не является истинным, @sachleen, его можно использовать вне домена «серверный сценарий». Возможно даже скрипт shell в PHP! –

+0

Да, я знаю об этом. Я использую PHP CLI для нескольких вещей для себя. Но из того, что я выбрал из оригинального вопроса, похоже, что Григор хочет, чтобы это было сделано на стороне клиента, а не на сервере. Наверное, это была неправильная интерпретация. – sachleen

0

Вы можете реплицировать сообщение формы в PHP с помощью curl. Здесь сами предоставляют значение для текстового поля. Навигация в php - это то, о чем я не уверен.

0

PHP имеет расширение с именем cURL, которое может загружать веб-страницы из PHP и получать доступ к нему или сохранять его на диск.

Чтобы заполнить поле в форме, вы, возможно, ранее знали имена полей и действие формы и код в запросе cURL.

Документация: here.

Надеюсь, что помогло!