Автоматизация браузера

- В: Как работать с закладками с браузерами ?
Для этого имеется следующий функционал. - В: Как работать с внутренними параметрами браузера ?
Для этого имеется следующий функционал. - В: Как правильно работать с режимом inprivate (приватный), алгоритм действий для навигации?
Для этого истользуется следующий алгоритм:
$browser->recreate(); $browser->navigate("about:inprivate"); $browser->clear_cookies("", true, true); $browser->navigate("на нужную вам страницу");
- В: После навигации по линку скрипт показывает, что закончил работу ещё в процессе подгрузки страницы. Как исправить ?
Вероятнее всего, после навигации идет обработка JS, для того чтобы дождаться нужно использовать или паузу : $browser->wait_js(); и/или просто sleep(1);. Или дожидаться появления на странице нужного вам элемента через команды проверки существования элемента. Например :
echo $browser->navigate("whoer.net")." "; sleep(2); $anchor->get_by_attribute("class","btn-more")->focus(); $anchor->get_by_attribute("class","btn-more")->send_mouse_click();
- В: Как с помощью программы поменять в браузере navigator.appName ( и другие встроенные переменные JS )?
Для этого мы используем функцию $browser->set_init_java_script(); и ниже приведе пример использования :
$browser->recreate(); // 1 шаг echo "1. JS что выполнется после загрузки страницы, но перед всеми JS"; echo $browser->set_init_java_script(" function setAppName(window, appName) {if (window.navigator.appName != appName) { var appNameProp = { get: function () { return appName; } }; try { Object.defineProperty(window.navigator, "appName", appNameProp); } catch (e) { window.navigator = Object.create(navigator, { appName: appNameProp }); } } } setAppName(window, "new app name");")."<br>"; // 2 шаг echo "2. Посмотрим как изменилось appName : "; echo $browser->navigate("whoer.net")." "; sleep(2); $anchor->get_by_attribute("class","btn-more")->focus(); $anchor->get_by_attribute("class","btn-more")->send_mouse_click();
- В: Как правильно осуществлять полную очистку браузера, какой правильный алгоритм?
Для этого рекомендуем использвать следущий алгоритм:
$browser->recreate(); // Делаем полную очистку и пересоздаем браузер $browser->navigate("about:blank"); $browser->clear_address_bar_history(); $browser->clear_cache(); $browser->clear_cookies(""); $browser->clear_history(); $browser->recreate();
- В:Как осуществляется подмена реферера браузера?
По данному вопросу можно ознакомиться со статьёй на нашем форуме. - В:Как отключить флэш в программе?
Функции enable_activex(false) и enable_video(false) в скрипте указать данные значения, так же можно отключить непосредственно в настроках программы(F9) в разделе браузер, убрать галочки в пунктах ActiveX и Видео. - В:Как запускать JS в программе?
Используется данная команда browser->run_java_script - В:Как получить доступ к JS консоли(панели отладки) через FireBug?
Для этого в скрипт добавим следующие команды:
echo " Получим доступ к консоли JS : "; $dubug_and_firebug='javascript:if(!window.firebug){window.firebug=document.createElement("script"); firebug.setAttribute("src","http://getfirebug.com/releases/lite/1.2/firebug-lite-compressed.js"); document.body.appendChild(firebug); (function(){if(window.firebug.version) {firebug.init()} else{setTimeout(arguments.callee)}})(); void (firebug); if(window.debug&&debug.setCallback) {(function() {if(window.firebug&&window.firebug.version) {debug.setCallback(function(b){var a=Array.prototype.slice.call(arguments,1); firebug.d.console.cmd[b].apply(window,a)},true)}else{setTimeout(arguments.callee,100)}})()}};'; echo $browser->run_java_script($dubug_and_firebug);
Так же можно ознакомиться детально в данной статье javascript-debug-console - В:Как запускать jQuery в программе?
Используется данная команда $browser->run_jquery - В: Как средствами программы очистить куки?
Для этого у Хумана есть функция $browser->clear_cookies($match_name), отправляющая ИЕ команду затереть все куки, имеющие в своих названиях совпадение с переменной $match_name (пример: clear_cookies(‘google’) сотрёт только куки, содержащие в названии "google"). Если переменная пуста, папка очищается полностью.
Стоит учесть, что не все куки удаляются сразу. Можно использовать restart(); для полной очистки тех куков что висят в памяти браузера, или перейти на другую страницу и вызвать еще раз очистку куков. - В: Как проходить http авторизацию?
Для этого есть функция $browser->set_default_authorization. Функцией browser->reset_default_authorization можно сбросить данные, указанные в предыдущей. - В: Можно ли при помощи программы контролировать обмен данными между браузером и сервером?
Да, используя функции объекта $raw. - В:Как работает и для чего служит функция $browser->enable_callback ?
Данная функция отключает возможность доступа JS к оконным функциям хуман эмулятора, если не стоит галочка в соответствующем пункте настройках программы. Использовалась для корректной работы с сервисами яндекс почты и сервиса YouTube.
Если у вас возникли пожелания какие ответы вы бы хотели видеть здесь еще, пишите в нашу службу поддержки.