humanemulator.net — справка.
Продукт, демо и покупка — на
хуманэмулятор.рф
|
Демо
|
Купить
|
API
|
лог изменений
set_init_java_script
set_init_java_script($script_text,$add_file); - добавить на текущую страницу и вызвать произвольный JS сразу после окончания загрузки всей страницы (и каждого фрейма страницы). В каждом фреме будуте и на странице будет выполнен это код. Это может пригодится для изменения объктов страницы, например navigator.appName. (доступна с версии 4.9.34)Функция на вход принимает параметры:
После отработки функция возвращает результат своей работы в скрипт :
Пример использования
<?php // Scenario: Set initialization JavaScript to run when browser starts, then navigate to a website to demonstrate set_init_java_script function // Path to the init.php file for connecting to the XHE API $xhe_host = "localhost:7010"; if (!isset($path)){ // Path to the init.php file for connecting to the XHE API $path = "../../../Templates/init.php"; // Including init.php grants access to all classes and functionality for working with the XHE API require($path); } // The following code demonstrates the usage of the set_init_java_script function // Set initialization JavaScript by console message $script_text = "console.log('Browser initialized');"; $add_file = "init_script.js"; // Optional external file $result = WEB::$browser->set_init_java_script($script_text, $add_file); // Display the result if ($result) { echo "Successfully set initialization JavaScript"; echo "\nScript: " . $script_text; echo "\nExternal file: " . ($add_file ?: "None"); } else { echo "Failed to set initialization JavaScript"; } // Navigate to a website to trigger the initialization script $url = "https://www.google.com"; WEB::$browser->navigate($url); WEB::$browser->wait_js(3); // Quit the application WINDOW::$app->quit(); ?>
# Additional paths import sys sys.path.insert(0, '../../../Templates PY/') xhe_host = "127.0.0.1:7013" from xweb_human_emulator import * # начало echo("<hr><font color=blue>browser.xxxxxxxxx</font><hr>") # 1 echo("1. Зададим начальный Java Script ") # JS js_new_naviagtor="\ var platformProp = { get: function () { return '%%PLATFORM'; } };\ var appName = { get: function () { return '%%APPNAME'; } };\ var languageProp = { get: function () { return '%%LANGUAGE'; } };\ var languageBrowserProp = { get: function () { return '%%LANGUAGE_BROWSER'; } };\ var languageSystemProp = { get: function () { return '%%LANGUAGE_SYSTEM'; } };\ var languageUserProp = { get: function () { return '%%LANGUAGE_USER'; } };\ var hardwareConcurencyProp = { get: function () { return %%HWC; } };\ Object.defineProperty(window.navigator, 'platform', platformProp);\ Object.defineProperty(window.navigator, 'appName', appName);\ Object.defineProperty(window.navigator, 'language', languageProp);\ Object.defineProperty(window.navigator, 'browserLanguage', languageBrowserProp);\ Object.defineProperty(window.navigator, 'systemLanguage', languageSystemProp);\ Object.defineProperty(window.navigator, 'userLanguage', languageUserProp);\ Object.defineProperty(window.screen, 'width', { get: function () { return 1024; } });\ Object.defineProperty(window.screen, 'height', { get: function () { return 768; } });\ Object.defineProperty(window.navigator, 'hardwareConcurrency', hardwareConcurencyProp);\ window.navigator.javaEnabled=function(){return false)}))\ alert(navigator.plugins.length))\ " # поменяем JS под наши нужды js_new_naviagtor=js_new_naviagtor.replace("%%PLATFORM","Win64") js_new_naviagtor=js_new_naviagtor.replace("%%APPNAME","Netscape") js_new_naviagtor=js_new_naviagtor.replace("%%LANGUAGE_BROWSER","ru-RU") js_new_naviagtor=js_new_naviagtor.replace("%%LANGUAGE_SYSTEM","ru-RU") js_new_naviagtor=js_new_naviagtor.replace("%%LANGUAGE_USER","ru-RU") js_new_naviagtor=js_new_naviagtor.replace("%%LANGUAGE","ru-RU") js_new_naviagtor=js_new_naviagtor.replace("%%HWC","1") echo(browser.set_init_java_script(js_new_naviagtor),"<br>") # user agent #browser.set_user_agent("Mozilla/5.0 (Windows NT 10.0) WOW64) Trident/7.0) .NET4.0C) .NET4.0E) rv:11.0) like Gecko")) #https:#panopticlick.eff.org/results?&t=111&dnt=111&a=111#fingerprintTable #522df22d2d7b711e3964d40dea342b0f e2cc11feadb5c4d14da36a05b6c89fdf #883b0b504c37666be40c1971ea4a159f f7280c6f24f28cbde3a0bf10ff38a036 # 2 echo("2. Посмотрим изменения : ") 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() # конец echo("<hr><br>") # Quit app.quit()
#region using using System; using System.Diagnostics; using System.Collections.Generic; using System.Linq; using System.IO; using System.Text; using System.Threading; using XHE; using XHE.XHE_DOM; using XHE.XHE_System; using XHE.XHE_Window; using XHE.XHE_Web; #endregion class Program:XHEScript { static void Main(string[] args) { // init XHE server = "localhost:7010"; InitXHE(); // начало echo("<hr><font color=blue>browser.set_init_java_script</font><hr>"); // обновим страницу (для повторного выполнения скрипта) browser.refresh(); // 1 шаг echo("1. Зададим начальный Java Script : "); 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 name1');","")+"<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(); // конец echo("\n\n"); app.quit(); } }
// подключим функциональные объекты, если еще не подключен xhe_host="127.0.0.1:7010"; echo=require("../../../Templates JS/init.js"); // начало echo("<hr><font color=blue>browser.set_init_java_script</font><hr>"); var sInitJS="\ 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');"; // 1 шаг echo("1. Зададим начальный Java Script : "); echo(browser.set_init_java_script(sInitJS)+"<br>"); // 2 шаг echo("2. Посмотрим изменения appName : "); echo(browser.navigate("whoer.net")+" "); browser.sleep(2); anchor.get_by_attribute("class","btn-more").focus(); anchor.get_by_attribute("class","btn-more").send_mouse_click(); // конец echo("\n"); // Quit app.quit();
=============================================
Browser Объекты DOM System Vision Web Window
=============================================
если что-то непонятно или необходимо узнать или считаете что надо добавить по работе этой функции, пишите в комментарии или на наш форум
.