Данная команда позволяет добавить на текущую страницу и вызвать произвольный JS сразу после окончания загрузки всей страницы (и каждого фрейма страницы). В каждом фрейме и на странице будет выполнен это код. Это может пригодится для изменения объектов страницы, например navigator.appName.
<?php $xhe_host = "127.0.0.1:7094"; // подключим функциональные объекты, если еще не подключен if (!isset($path)) $path="../../../Templates/init.php"; require($path); // начало echo "<hr><font color=blue>browser->".basename (__FILE__)."</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, 'plugins', {get: function() {return [{name:'name1' , description:'desc1', version: '2.1' },{name:'name2' , description:'desc2', version: '2.1' }];}}); 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=str_replace("%%PLATFORM","Win64",$js_new_naviagtor); $js_new_naviagtor=str_replace("%%APPNAME","Netscape",$js_new_naviagtor); $js_new_naviagtor=str_replace("%%LANGUAGE_BROWSER","ru-RU",$js_new_naviagtor); $js_new_naviagtor=str_replace("%%LANGUAGE_SYSTEM","ru-RU",$js_new_naviagtor); $js_new_naviagtor=str_replace("%%LANGUAGE_USER","ru-RU",$js_new_naviagtor); $js_new_naviagtor=str_replace("%%LANGUAGE","ru-RU",$js_new_naviagtor); $js_new_naviagtor=str_replace("%%HWC","1",$js_new_naviagtor); echo $browser->set_init_java_script($js_new_naviagtor)."<br>"; // 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="127.0.0.1:7019"; 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("<hr><br>"); 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("<hr><br>"); // Quit 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()