How to use scriptFile method in wpt

Best JavaScript code snippet using wpt

init.js

Source:init.js Github

copy

Full Screen

1var Objects = java.util.Objects;2var System = java.lang.System;3var out = Packages.com.gmt2001.Console.out;4var initscript = $script;5$.tostring = Objects.toString;6$.println = function(o) {7 out.println(tostring(o));8};9function isNumeric(num){10 return !isNaN(num);11}12var blackList = ["getClass", "equals", "notify", "class", "hashCode", "toString", "wait", "notifyAll"];13function isJavaProperty(property) {14 for(var i in blackList) {15 if(blackList[i] == property) {16 return true;17 }18 }19 20 return false;21}22function generateTrampoline(obj, name) {23 return function() {24 var args = [$script];25 for(var i = 0; i < arguments.length; i++) {26 args.push(arguments[i]);27 }28 obj[name].apply(obj, args);29 };30}31for(var name in $api) {32 if(isJavaProperty(name)) continue;33 if(typeof $api[name] == "function") {34 $[name] = generateTrampoline($api, name);35 } else {36 $[name] = $api[name];37 }38}39$.connected = false;40$.modeo = false;41$api.on($script, 'ircJoinComplete', function(event) {42 $.connected = true;43 $.channel = event.getChannel();44});45$api.on($script, 'ircChannelUserMode', function(event) {46 if ($.connected) {47 if (event.getChannel().getName().equalsIgnoreCase($.channel.getName())) {48 if (event.getUser().equalsIgnoreCase($.botname) && event.getMode().equalsIgnoreCase("o")) {49 if (event.getAdd() == true) {50 if (!$.modeo) {51 var connectedMessage = $.inidb.get('settings', 'connectedMessage');52 53 if (connectedMessage != null && !connectedMessage.isEmpty()) {54 $.say(connectedMessage);55 } else {56 println("ready");57 }58 }59 60 $.modeo = true;61 } else {62 $.modeo = false;63 }64 }65 }66 }67});68var modules = new Array();69var hooks = new Array();70var timers = new Array();71$.getModuleIndex = function(scriptFile) {72 for (var i = 0; i < modules.length; i++) {73 if (modules[i][0].equalsIgnoreCase(scriptFile)) {74 if (scriptFile.indexOf("./util/") != -1) {75 modules[i][1] = true;76 }77 78 return i;79 }80 }81 82 return -1;83}84$.isModuleLoaded = function(scriptFile) {85 return $.getModuleIndex(scriptFile) != -1;86}87$.moduleEnabled = function(scriptFile) {88 var i = $.getModuleIndex(scriptFile);89 90 if (i == -1) {91 return false;92 }93 94 return modules[i][1];95}96$.getModule = function(scriptFile) {97 var i = $.getModuleIndex(scriptFile);98 99 if (i != -1) {100 return modules[i];101 }102 103 return null;104}105$.loadScript = function(scriptFile) {106 if (!$.isModuleLoaded(scriptFile)) {107 try {108 var script = $api.loadScriptR($script, scriptFile);109 var senabled = $.inidb.get('modules', scriptFile + '_enabled');110 var enabled = true;111 112 if (senabled) {113 enabled = senabled.equalsIgnoreCase("1");114 }115 116 modules.push(new Array(scriptFile, enabled, script));117 } catch (e) {118 if ($.isModuleLoaded("./util/misc.js")) {119 $.logError("init.js", 132, "(loadScript, " + scriptFile + ") " + e);120 }121 }122 }123}124$.loadScriptsRecursive = function(path) {125 if (path.substring($.strlen(path) - 1).equalsIgnoreCase("/")) {126 path = path.substring(0, $.strlen(path) - 1);127 }128 129 var list = $.findFiles("./scripts/" + path, "");130 var dirs = new Array();131 var i;132 133 for (i = 0; i < list.length; i++) {134 if (path.equalsIgnoreCase(".")) {135 if (list[i].equalsIgnoreCase("util") || list[i].equalsIgnoreCase("init.js")) {136 continue;137 }138 }139 140 if ($.isDirectory("./scripts/" + path + "/" + list[i])) {141 dirs.push(list[i]);142 } else {143 $.loadScript(path + "/" + list[i]);144 }145 }146 147 for (i = 0; i < dirs.length; i++) {148 $.loadScriptsRecursive(path + "/" + dirs[i]);149 }150}151$.hook = new Array();152$.hook.getHookIndex = function (scriptFile, hook) {153 for (var i = 0; i < hooks.length; i++) {154 if (hooks[i][0].equalsIgnoreCase(scriptFile) && hooks[i][1].equalsIgnoreCase(hook)) {155 return i;156 }157 }158 return -1;159}160$.hook.hasHook = function (scriptFile, hook) {161 return $.hook.getHookIndex(scriptFile, hook) != -1;162}163$.hook.add = function (hook, handler) {164 var scriptFile = $script.getPath().replace("\\", "/").replace("./scripts/", "");165 var i = $.hook.getHookIndex(scriptFile, hook);166 if (i == -1) {167 hooks.push(new Array(scriptFile, hook, null));168 i = $.hook.getHookIndex(scriptFile, hook);169 }170 hooks[i][2] = handler;171}172$.on = $.hook.add;173$.hook.remove = function (hook) {174 var scriptFile = $script.getPath().replace("\\", "/").replace("./scripts/", "");175 var i = $.hook.getHookIndex(scriptFile, hook);176 if (i != -1) {177 hooks.splice(i, 1);178 }179}180$.hook.call = function (hook, arg) {181 for (var i = 0; i < hooks.length; i++) {182 if (hooks[i][1].equalsIgnoreCase(hook) && $.moduleEnabled(hooks[i][0])) {183 hooks[i][2](arg);184 }185 }186}187$.timer = new Array();188$.timer.getTimerIndex = function(scriptFile, name, isInterval) {189 for (var i = 0; i < timers.length; i++) {190 if (timers[i][0].equalsIgnoreCase(scriptFile) && timers[i][1].equalsIgnoreCase(name) && timers[i][2] == isInterval) {191 return i;192 }193 }194 195 return -1;196}197$.timer.hasTimer = function(scriptFile, name, isInterval) {198 return $.timer.getTimerIndex(scriptFile, name, isInterval) != -1;199}200$.timer.addTimer = function(scriptFile, name, isInterval, handler, interval) {201 var i = $.timer.getTimerIndex(scriptFile, name, isInterval);202 203 if (i == -1) {204 timers.push(new Array(scriptFile, name, isInterval, null, null, null));205 i = $.timer.getTimerIndex(scriptFile, name, isInterval);206 }207 208 timers[i][3] = 0;209 timers[i][4] = handler;210 timers[i][5] = interval;211}212$.timer.clearTimer = function(scriptFile, name, isInterval) {213 var i = $.timer.getTimerIndex(scriptFile, name, isInterval);214 215 if (i != -1) {216 timers.splice(i, 1);217 }218}219$.setInterval = function(handler, interval) {220 var scriptFile = $script.getPath().replace("\\", "/").replace("./scripts/", "");221 222 $.timer.addTimer(scriptFile, "default", true, handler, interval);223}224$api.setInterval($script, function() {225 var toremove = new Array();226 227 try {228 for (var i = 0; i < timers.length; i++) {229 timers[i][3]++;230 231 if (timers[i][3] * 1000 >= timers[i][5]) {232 timers[i][3] = 0;233 234 try {235 timers[i][4]();236 } catch (e) {237 $.logError("init.js", 279, "(timer.interval.exec, " + timers[i][1] + ", " + timers[i][0] + ") " + e);238 }239 240 try {241 if (timers[i] != undefined && !timers[i][2]) {242 toremove.push(timers[i]);243 }244 } catch (e) {245 if (e.indexOf("TypeError: Cannot read property \"2\" from undefined") == -1) {246 $.logError("init.js", 288, "(timer.interval.markremove) " + e);247 }248 }249 }250 }251 } catch (e) {252 $.logError("init.js", 294, "(timer.interval.loop) " + e);253 }254 255 try {256 for (var b = 0; b < toremove.length; b++) {257 $.timer.clearTimer(toremove[b][0], toremove[b][1], toremove[b][2]);258 }259 } catch(e) {260 $.logError("init.js", 302, "(timer.interval.remove) " + e);261 }262}, 1000);263$.hook.call = function(hook, arg, alwaysrun) {264 for (var i = 0; i < hooks.length; i++) {265 if (hooks[i][1].equalsIgnoreCase(hook) && ($.moduleEnabled(hooks[i][0]) || alwaysrun)) {266 try {267 hooks[i][2](arg);268 } catch (e) {269 $.logError("init.js", 211, "(hook.call, " + hook + ", " + hooks[i][0] + ") " + e);270 }271 }272 }273}274$api.on($script, 'command', function(event) {275 var sender = event.getSender();276 if ($.inidb.exists('aliases', event.getCommand().toLowerCase())) {277 event.setCommand($.inidb.get('aliases', event.getCommand().toLowerCase()));278 }279 280 var command = event.getCommand();281 282 if ($.moduleEnabled("./systems/pointSystem.js") && !$.isMod(sender) && $.inidb.exists("pricecom", command.toLowerCase())) {283 if (parseInt($.inidb.get("points", sender)) < parseInt($.inidb.get("pricecom", command.toLowerCase()))) {284 $.say("That command costs " + $.inidb.get("pricecom", command.toLowerCase()) + " " + $.pointname + ", which you don't have.");285 return;286 } else {287 $.inidb.decr("points", sender, parseInt($.inidb.get("pricecom", command.toLowerCase())));288 $.println("[Paid]" + username + "s balance is now: " + $.inidb.get('points', sender) + " " + $.pointname + "");289 }290 }291 292 $.hook.call('command', event, false);293});294$api.on($script, 'consoleInput', function(event) {295 $.hook.call('consoleInput', event, true);296});297$api.on($script, 'twitchFollow', function(event) {298 $.hook.call('twitchFollow', event, true);299});300$api.on($script, 'twitchUnfollow', function(event) {301 $.hook.call('twitchUnfollow', event, true);302});303$api.on($script, 'twitchFollowsInitialized', function(event) {304 $.hook.call('twitchFollowsInitialized', event, true);305});306$api.on($script, 'twitchHosted', function(event) {307 $.hook.call('twitchHosted', event, true);308});309$api.on($script, 'twitchUnhosted', function(event) {310 $.hook.call('twitchUnhosted', event, true);311});312$api.on($script, 'twitchHostsInitialized', function(event) {313 $.hook.call('twitchHostsInitialized', event, true);314});315$api.on($script, 'twitchSubscribe', function(event) {316 $.hook.call('twitchSubscribe', event, true);317});318$api.on($script, 'twitchUnsubscribe', function(event) {319 $.hook.call('twitchUnsubscribe', event, true);320});321$api.on($script, 'twitchSubscribesInitialized', function(event) {322 $.hook.call('twitchSubscribesInitialized', event, true);323});324$api.on($script, 'ircChannelJoin', function(event) {325 $.hook.call('ircChannelJoin', event, true);326});327$api.on($script, 'ircChannelLeave', function(event) {328 $.hook.call('ircChannelLeave', event, true);329});330$api.on($script, 'ircChannelUserMode', function(event) {331 $.hook.call('ircChannelUserMode', event, true);332});333$api.on($script, 'ircConnectComplete', function(event) {334 $.hook.call('ircConnectComplete', event, true);335});336$api.on($script, 'ircJoinComplete', function(event) {337 $.hook.call('ircJoinComplete', event, true);338});339$api.on($script, 'ircPrivateMessage', function(event) {340 $.hook.call('ircPrivateMessage', event, false);341});342$api.on($script, 'ircChannelMessage', function(event) {343 if (event.getSender().equalsIgnoreCase("jtv") || event.getSender().equalsIgnoreCase("twitchnotify")) {344 $.hook.call('ircPrivateMessage', event, false);345 } else {346 $.hook.call('ircChannelMessage', event, false);347 }348});349$api.on($script, 'musicPlayerConnect', function(event) {350 $.hook.call('musicPlayerConnect', event, false);351});352$api.on($script, 'musicPlayerCurrentId', function(event) {353 $.hook.call('musicPlayerCurrentId', event, false);354});355$api.on($script, 'musicPlayerCurrentVolume', function(event) {356 $.hook.call('musicPlayerCurrentVolume', event, false);357});358$api.on($script, 'musicPlayerDisconnect', function(event) {359 $.hook.call('musicPlayerDisconnect', event, false);360});361$api.on($script, 'musicPlayerState', function(event) {362 $.hook.call('musicPlayerState', event, false);363});364$.botname = $.botName;365$.botowner = $.ownerName;366$.castermsg = "Only a Caster has access to that command!";367$.adminmsg = "Only a Administrator has access to that command!";368$.modmsg = "Only a Moderator has access to that command!";369$.loadScript('./util/misc.js');370$.loadScript('./util/commandList.js');371$.loadScript('./util/patternDetector.js');372$.loadScript('./util/fileSystem.js');373$.logEvent("init.js", 410, "Initializing...");374$.initialsettings_update = 1;375if ($.inidb.GetBoolean("init", "initialsettings", "loaded") == false376 || $.inidb.GetInteger("init", "initialsettings", "update") < $.initialsettings_update) {377 $.logEvent("init.js", 420, "Loading initial settings...");378 $.loadScript('./util/initialsettings.js');379}380$.upgrade_version = 7;381if ($.inidb.GetInteger("init", "upgrade", "version") < $.upgrade_version) {382 $.logEvent("init.js", 426, "Running upgrade from v" + $.inidb.GetInteger("init", "upgrade", "version") + " to v" + $.upgrade_version + "...");383 $.loadScript('./util/upgrade.js');384}385$.loadScript('./util/permissions.js');386$.loadScript('./util/chatModerator.js');387$.loadScriptsRecursive(".");388$api.on(initscript, 'ircChannelMessage', function(event) {389 var sender = event.getSender();390 var username = $.username.resolve(sender);391 var message = event.getMessage();392 println(username + ": " + message);393});394$api.on(initscript, 'command', function(event) {395 var sender = event.getSender();396 var username = $.username.resolve(sender);397 var command = event.getCommand();398 var argsString = event.getArguments().trim();399 var args = event.getArgs();400 var index;401 402 if (command.equalsIgnoreCase("setconnectedmessage")) {403 if (!$.isAdmin(sender)) {404 $.say("You must be an Administrator to use that command.");405 return;406 }407 408 $.logEvent("init.js", 457, username + " changed the connected message to: " + argsString);409 410 $.inidb.set('settings', 'connectedMessage', argsString);411 $.say("Connected message set!");412 }413 414 if (command.equalsIgnoreCase("reconnect")) {415 if (!$.isMod(sender)) {416 $.say("You must be a Moderator to use that command.");417 return;418 }419 420 $.logEvent("init.js", 469, username + " requested a reconnect");421 422 $.connmgr.reconnectSession($.hostname);423 $.say("Reconnect scheduled!");424 }425 426 if (command.equalsIgnoreCase("module")) {427 if (!$.isAdmin(sender)) {428 $.say("You must be an Administrator to use that command.");429 return;430 }431 432 if (args.length == 0) {433 $.say("Usage: !module list, !module enable <module name>, !module disable <module name>, !module status <module name>");434 } else {435 if (args[0].equalsIgnoreCase("list")) {436 var lstr = "Modules: ";437 var first = true;438 var utils = 0;439 440 for (var n = 0; n < modules.length; n++) {441 if (modules[n][0].indexOf("./util/") != -1) {442 utils++;443 }444 }445 446 var num = Math.ceil((modules.length - utils) / 10.0);447 448 var offset = 0;449 450 for (var b = 0; b < num; b++) {451 n = 0;452 453 for (var i = (b * 10) + offset; n < 10; i++) {454 if (i >= modules.length) {455 break;456 } else if (modules[i][0].indexOf("./util/") != -1) {457 offset++;458 continue;459 } else {460 n++;461 }462 463 if (!first) {464 lstr += " - ";465 }466 467 lstr += modules[i][0] + " (";468 469 if (modules[i][1]) {470 lstr += "enabled";471 } else {472 lstr += "disabled";473 }474 475 lstr += ")";476 first = false;477 }478 479 $.say(lstr);480 481 lstr = "> ";482 first = true;483 }484 }485 486 if (args[0].equalsIgnoreCase("enable")) {487 if (args[1].indexOf("./util/") != -1) {488 return;489 }490 491 index = $.getModuleIndex(args[1]);492 493 if (index == -1) {494 $.say("That module does not exist or is not loaded!");495 } else {496 $.logEvent("init.js", 545, username + " enabled module " + args[1]);497 498 modules[index][1] = true;499 500 $.inidb.set('modules', modules[index][0] + '_enabled', "1");501 502 $.say("Module enabled!");503 }504 }505 506 if (args[0].equalsIgnoreCase("disable")) {507 if (args[1].indexOf("./util/") != -1) {508 return;509 }510 511 index = $.getModuleIndex(args[1]);512 513 if (index == -1) {514 $.say("That module does not exist or is not loaded!");515 } else {516 $.logEvent("init.js", 565, username + " disabled module " + args[1]);517 518 modules[index][1] = false;519 520 $.inidb.set('modules', modules[index][0] + '_enabled', "0");521 522 $.say("Module disabled!");523 }524 }525 526 if (args[0].equalsIgnoreCase("status") || args[0].equalsIgnoreCase("check")) {527 if (args[1].indexOf("./util/") != -1) {528 return;529 }530 531 index = $.getModuleIndex(args[1]);532 533 if (index == -1) {534 $.say("That module does not exist or is not loaded!");535 } else {536 if (modules[index][1]) {537 $.say("The module " + modules[index][0] + " is currently enabled!");538 } else {539 $.say("The module " + modules[index][0] + " is currently disabled!");540 }541 }542 }543 }544 }545});546$.logEvent("init.js", 596, "Bot Online");547$.registerChatCommand('./init.js', 'setconnectedmessage', 'admin');548$.registerChatCommand('./init.js', 'reconnect', 'mod');...

Full Screen

Full Screen

hostapps.js

Source:hostapps.js Github

copy

Full Screen

1#! /usr/bin/env node2const { platform } = require('os')3const { exec } = require('child_process');4const path = require('path')5const dirname = path.resolve()6const packageName = process.env.npm_package_name;7const args = process.argv8const application = args[args.length - 1]9let appExe10switch (application) {11 case 'ae': appExe = 'C:/Program Files/Adobe/Adobe After Effects 2022/Support Files/AfterFX'12 break13 case 'ps': appExe = 'C:/Program Files/Adobe/Adobe Photoshop 2022/Photoshop.exe'14}15const hostApps = (appExe, scriptFile, activate = '') => {16 //https://github.com/rendertom/VSCode-Adobe-Script-Runner.git17 return {18 ae: {19 shortName: 'ae',20 appName: 'Adobe After Effects',21 darwin: `osascript -e 'tell application id "com.adobe.aftereffects" to ${activate} DoScriptFile "${scriptFile}" with override'`,22 win32: `"${appExe}" -r ${scriptFile}`,23 },24 ai: {25 shortName: 'ai',26 appName: 'Adobe Illustrator',27 darwin: `osascript -e 'tell application id "com.adobe.illustrator" to ${activate} do javascript file "${scriptFile}"'`,28 win32: `"{appExe}" -r {scriptFile}`,29 appExe: 'winIllustratorExe',30 },31 estk: {32 shortName: 'estk',33 appName: 'Adobe ExtendScript Toolkit',34 darwin: `osascript -e 'tell application id "com.adobe.estoolkit-4.0" to ${activate} open "${scriptFile}"'`,35 win32: `"{appExe}" -run {scriptFile}`,36 appExe: 'winExtendscriptToolkitExe',37 },38 ic: {39 shortName: 'ic',40 appName: 'Adobe InCopy',41 darwin: `osascript -e 'tell application id "com.adobe.InCopy" to ${activate} do script "${scriptFile}" language javascript'`,42 win32: `powershell -command "$app = new-object -comobject InCopy.Application; $app.DoScript('${scriptFile}', 1246973031)"`, //http://jongware.mit.edu/idcs6js/pe_ScriptLanguage.html43 },44 id: {45 shortName: 'id',46 appName: 'Adobe InDesign',47 darwin: `osascript -e 'tell application id "com.adobe.InDesign" to ${activate} do script "${scriptFile}" language javascript'`,48 win32: `powershell -command "$app = new-object -comobject InDesign.Application; $app.DoScript('${scriptFile}', 1246973031)"`, //http://jongware.mit.edu/idcs6js/pe_ScriptLanguage.html49 },50 ps: {51 shortName: 'psd',52 appName: 'Adobe Photoshop',53 appExe: 'winPhotoshopExe',54 darwin: `osascript -e 'tell application id "com.adobe.photoshop" to ${activate} do javascript file "${scriptFile}"'`,55 win32: `"${appExe}" -r ${scriptFile}`,56 },57 }58}59const script = path.join(dirname, 'dist', `${packageName}.jsx`)60const program = hostApps(appExe, script)[args[args.length - 1]]61const exe = program[platform()];62console.log(`Running ${packageName}.jsx in ${program.appName}...`)...

Full Screen

Full Screen

Using AI Code Generation

copy

Full Screen

1wpt.scriptFile('test.js');2wpt.script('function(){ return document.title; }');3wpt.scriptFile('test.js');4wpt.script('function(){ return document.title; }');5wpt.scriptFile('test.js');6wpt.script('function(){ return document.title; }');7wpt.scriptFile('test.js');8wpt.script('function(){ return document.title; }');9wpt.scriptFile('test.js');10wpt.script('function(){ return document.title; }');11wpt.scriptFile('test.js');12wpt.script('function(){ return document.title; }');13wpt.scriptFile('test.js');14wpt.script('function(){ return document.title; }');15wpt.scriptFile('test.js');16wpt.script('function(){ return document.title; }');17wpt.scriptFile('test.js');18wpt.script('function(){ return document.title; }');19wpt.scriptFile('test.js');20wpt.script('function(){ return document.title; }');21wpt.scriptFile('test.js');22wpt.script('function(){ return document.title;

Full Screen

Using AI Code Generation

copy

Full Screen

1var wptDriver = require('wptDriver');2var scriptFile = wptDriver.scriptFile;3var script = scriptFile('test.js');4console.log(script);5var wptDriver = require('wptDriver');6var scriptUrl = wptDriver.scriptUrl;7console.log(script);8var wptDriver = require('wptDriver');9var script = wptDriver.script;10var script = script('test.js');11console.log(script);12var wptDriver = require('wptDriver');13var script = wptDriver.script;14console.log(script);15var wptDriver = require('wptDriver');16var script = wptDriver.script;17var script = script('alert("Hello World");');18console.log(script);19var wptDriver = require('wptDriver');20var script = wptDriver.script;21var script = script('alert("Hello World");', true);22console.log(script);23var wptDriver = require('wptDriver');24var script = wptDriver.script;25var script = script('alert("Hello World");', false);26console.log(script);27var wptDriver = require('wptDriver');28var script = wptDriver.script;29var script = script('alert("Hello World");', true, true);30console.log(script);31var wptDriver = require('wptDriver');32var script = wptDriver.script;33var script = script('alert("Hello World");', true

Full Screen

Using AI Code Generation

copy

Full Screen

1var wpt = require('webpagetest');2var options = {3};4wpt.runTest(options, function(err, data) {5 if (err) {6 console.log(err);7 } else {8 console.log(data);9 }10});11var wpt = require('webpagetest');12var options = {13};14wpt.runTest(options, function(err, data) {15 if (err) {16 console.log(err);17 } else {18 console.log(data);19 }20});21var wpt = require('webpagetest');22var options = {

Full Screen

Using AI Code Generation

copy

Full Screen

1var wpt = require('webpagetest');2var wpt = new WebPageTest('www.webpagetest.org', 'A.1d8d5c5f9f1c9e6af0b8e5b5f5f5f5f5');3}, function(err, data) {4 if (err) return console.error(err);5 console.log('Test status:', data.statusText);6 console.log('View your test results at: ' + data.data.userUrl);7});

Full Screen

Using AI Code Generation

copy

Full Screen

1var wpt = require('webpagetest');2var test = new wpt('www.webpagetest.org', 'A.5d4f4a4e3e12f8c4f9a4b3d3c3a3a3a3');3 if (err) return console.error(err);4 console.log('Test submitted. Polling for results...');5 test.getTestResults(data.data.testId, function(err, data) {6 if (err) return console.error(err);7 console.log(data);8 });9});10var wpt = require('webpagetest');11var test = new wpt('www.webpagetest.org', 'A.5d4f4a4e3e12f8c4f9a4b3d3c3a3a3a3');12 if (err) return console.error(err);13 console.log('Test submitted. Polling for results...');14 test.getTestResults(data.data.testId, function(err, data) {15 if (err) return console.error(err);16 console.log(data);17 });18});19var wpt = require('webpagetest');20var test = new wpt('www.webpagetest.org', 'A.5d4f4a4e3e12f8c4f9a4b3d3c3a3a3a3');21 { "clickAndWait": "link=About" },22 { "clickAndWait": "link=Contact" },23 { "clickAndWait": "link=Home" },24 { "clickAndWait": "link=News" },25 { "clickAndWait": "link=Products" },26 { "clickAndWait": "link=Services" },27 { "clickAndWait": "link=Support" },28 { "clickAndWait": "link=Home" }29];

Full Screen

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run wpt automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful