Best JavaScript code snippet using playwright-internal
MainLayer.js
Source: MainLayer.js
1import BackgroundScene from './BackgroundScene';2import BackgroundDegrade from './BackgroundDegrade';3import BarScene from './BarScene';4import Girl from './Girl';5import CrashScene from './CrashScene';6import GLOBAL from './Global';7import resource from './resource';8import Sound from './Sound';9import HeaderScene from './HeaderScene';10import CountDownScene from './CountDownScene';11import PauseScene from './PauseScene';12import MenuLayer from './menuLayer';13import GameOverScene from './GameOverScene';14import Util from './utils';15class MainLayer extends Laya.Scene {16 constructor (who) {17 super();18 Laya.timer.frameLoop(1, this, this.onUpdate);19 // Tiny.app.view.style['touch-action'] = 'none';20 // Tiny.app.renderer.plugins.interaction.autoPreventDefault = true;21 this._defaultTickerDuration = 500;22 // å
¨å±çå®æ¶å¨23 // @ts-ignore24 this._ticker = Laya.timer;25 // this._ticker.loop(26 // this._defaultTickerDuration,27 // this,28 // this.setTimer29 // );30 // this._ticker.callLater(this, this.setTimer);31 this.init(who);32 }33 startRunAction() {34 this.startCountDown();35 }36 setTimer() {37 GLOBAL.CONF.MILEAGE++;38 this._statusBar.syncMileage();39 if (GLOBAL.CONF.MILEAGE % 50 === 0) {40 this._defaultTickerDuration--;41 this._ticker.clear(this, this.setTimer);42 this._ticker.loop(43 this._defaultTickerDuration,44 this,45 this.setTimer46 );47 GLOBAL.CONF.SPEED += 0.4;48 this._girl.changeJumpDuration();49 }50 }51 init (who) {52 console.log('initstart');53 // èæ¯54 if (GLOBAL.CONF.DEGRADE) {55 this._background = new BackgroundDegrade();56 } else {57 this._background = new BackgroundScene();58 }59 this.addChild(this._background);60 // ç¶ææ 61 this._statusBar = new BarScene();62 this._statusBar.on('pause', this, () => {63 this.gamePause();64 this._pauseDialog.show();65 });66 this.addChild(this._statusBar);67 // ç°å°68 this._dust = new Laya.Animation();69 this._dust.loadImages(this.aniUrls("other/dust_", 13));70 this._dust.interval = 44;71 const dustHeight = new Laya.Sprite();72 dustHeight.loadImage('other/dust_0.png');73 this._dust.pivot(dustHeight.width, dustHeight.height);74 dustHeight.texture = null;75 dustHeight.removeSelf();76 this._dust.pos(120, GLOBAL.CONF.GROUND_POS_Y);77 this._dust.play();78 this._dust.visible = false;79 this.addChild(this._dust);80 // 223381 this._girl = new Girl(who);82 this._girl.on('notRun', this, () => {83 this._dust.visible = false;84 });85 this._girl.on('run', this, () => {86 this._dust.visible = true;87 });88 this._girl.on('die', this, () => {89 this._dieAnime.visible = true;90 this._dieAnime.play();91 });92 this.addChild(this._girl);93 // å¯ç¢°æå
容94 this._crash = new CrashScene();95 this._crash.on('noChance', this, () => {96 this.gamePause();97 this._pauseDialog.show(0);98 });99 this.addChild(this._crash);100 // æ»äº¡ç¹æ101 this._dieAnime = new Laya.Animation();102 this._dieAnime.loadImages(this.aniUrls(`${who}/die_`, 18));103 this._dieAnime.interval = 83;104 const girlHeight = new Laya.Sprite();105 girlHeight.autoSize = true;106 girlHeight.loadImage(`${who}/die_1.png`);107 this._dieAnime.pivot(0, girlHeight.height);108 girlHeight.texture = null;109 girlHeight.removeSelf();110 if (who === 'girl22') {111 this._dieAnime.pos(32, GLOBAL.CONF.GROUND_POS_Y + 1);112 } else {113 this._dieAnime.pos(16, GLOBAL.CONF.GROUND_POS_Y + 3);114 }115 this._dieAnime.on(Laya.Event.COMPLETE, this, () => {116 this._dieAnime.stop();117 this._dieAnime.visible = false;118 this._gameoverDialog.show({119 type: 'gameover'120 });121 });122 this._dieAnime.visible = false;123 this.addChild(this._dieAnime);124 // è·³è·æé®125 this._jumpBtn = this.createJumpBtn();126 this.addChild(this._jumpBtn);127 const isFrist = Util.storage.get('bili_mario_gamed') !== 'gamed';128 if (!isFrist) { // å ææ示129 const hand = new Laya.Animation();130 hand.loadImages(this.aniUrls('other/hand_', 12));131 hand.pivot(0, 0);132 hand.pos(534, 1050);133 hand.interval = 83;134 hand.play();135 this.addChild(hand);136 this._hand = hand;137 } else {138 // @ts-ignore139 this._jumpBtn._clicked = true;140 }141 // å计æ¶142 this._countDown = new CountDownScene();143 this._countDown.on('done', this, () => {144 GLOBAL.CONF.MODE = GLOBAL.MODES.PLAYING;145 Sound.playBg();146 this._girl.startRun();147 this._crash.startAnime();148 // this._ticker.runCallLater(this, this.setTimer);149 this._ticker.loop(this._defaultTickerDuration, this, this.setTimer);150 });151 this.addChild(this._countDown);152 // å¤æ¡æ¶153 const frame = new Laya.Sprite();154 frame.loadImage(resource['frame'].url);155 frame.pivot(0, 0);156 frame.pos(0, 0);157 this.addChild(frame);158 this._header = new HeaderScene();159 this.addChild(this._header);160 // åç§å¼¹å±161 this._pauseDialog = new PauseScene();162 this._pauseDialog.on('resume', this, () => {163 if (GLOBAL.CONF.MODE === GLOBAL.MODES.PAUSED) {164 GLOBAL.CONF.MODE = GLOBAL.MODES.PLAYING;165 this._dust.visible = false;166 this._girl.resume();167 this._crash.startAnime();168 this._ticker.loop(this._defaultTickerDuration, this, this.setTimer);169 // this._ticker.runCallLater(this, this.setTimer);170 }171 });172 this._pauseDialog.on('stop', this, () => {173 GLOBAL.CONF.MODE = GLOBAL.MODES.MENU;174 if (GLOBAL.DATA.LOTTERY_LIST.length === 0) {175 this.removeChildren();176 this.removeSelf();177 // this.destroy(true);178 const menuLayer = new MenuLayer();179 // @ts-ignore180 Laya.stage.addChild(menuLayer);181 } else {182 this._gameoverDialog.show({183 type: 'userexit'184 });185 }186 });187 this.addChild(this._pauseDialog);188 this._gameoverDialog = new GameOverScene();189 this._gameoverDialog.on('restart', this, () => {190 this.startCountDown();191 });192 this._gameoverDialog.on('stop', this, () => {193 GLOBAL.CONF.MODE = GLOBAL.MODES.MENU;194 // this.removeChildren();195 this.removeSelf();196 this._crash.removeSelf();197 this._ticker.clearAll(this);198 this._ticker.clearAll(this._crash);199 this._ticker.clearAll(this._girl);200 this._ticker.clearAll(this._background);201 // this.destroy(true);202 const menuLayer = new MenuLayer();203 // @ts-ignore204 Laya.stage.addChild(menuLayer);205 });206 this._gameoverDialog.on('share', this, () => {207 window.kfcMario && window.kfcMario.showShare && window.kfcMario.showShare();208 });209 this._gameoverDialog.on('break', this, type => {210 this._header.syncRecord();211 });212 this.addChild(this._gameoverDialog);213 window.kfcMario.pause = type => {214 this.gamePause();215 this._pauseDialog.show(type);216 };217 window.kfcMario.gameOver = info => {218 this.gamePause();219 console.log('come here1');220 GLOBAL.CONF.MODE = GLOBAL.MODES.GAME_OVER;221 this._gameoverDialog.show(info);222 };223 console.log('initend');224 }225 aniUrls(name, num) {226 var urls = [];227 for(var i = 0;i < num;i++){228 //å¨ç»èµæºè·¯å¾è¦åå¨ç»å¾éæå
åçèµæºå½å对åºèµ·æ¥229 urls.push(name + i + ".png");230 }231 return urls;232 }233 startCountDown () {234 window.kfcMario.resetLottery && window.kfcMario.resetLottery();235 GLOBAL.CONF.SPEED = GLOBAL.CONF.DEFAULT_SPEED;236 GLOBAL.CONF.MODE = GLOBAL.MODES.PRE;237 GLOBAL.CONF.HIT = 0;238 GLOBAL.CONF.MILEAGE = 0;239 this._girl.changeJumpDuration();240 this._crash.init();241 console.log(this._crash._enemyCache, 'enemy');242 this._header.reset();243 this._statusBar.reset();244 this._girl.readyStart();245 // this._ticker.duration = this._defaultTickerDuration;246 // this._ticker.clear(this, this.setTimer);247 // this._ticker.loop(this._defaultTickerDuration, this, this.setTimer);248 Sound.playCountDown();249 this._countDown.start();250 }251 createJumpBtn () {252 const btnJump = new Laya.Sprite();253 btnJump.loadImage('icons/btn_jump.png');254 // @ts-ignore255 btnJump._clicked = false;256 btnJump.pivot(0, 0);257 btnJump.pos(94, 1012);258 btnJump.mouseEnabled = true;259 btnJump.on(Laya.Event.CLICK, this, (event) => {260 // event.data.originalEvent.preventDefault();261 // @ts-ignore262 console.log('btn-click', GLOBAL.CONF.MODE, GLOBAL.MODES.PLAYING);263 if (!btnJump._clicked) {264 // @ts-ignore265 btnJump._clicked = true;266 Util.storage.set('bili_mario_gamed', 'gamed');267 if (this._hand) {268 this.removeChild(this._hand);269 delete this._hand;270 }271 }272 if (GLOBAL.CONF.MODE === GLOBAL.MODES.PLAYING) {273 this._girl.doJump();274 }275 });276 return btnJump;277 }278 gamePause () {279 GLOBAL.CONF.MODE = GLOBAL.MODES.PAUSED;280 this._dust.visible = false;281 this._girl.freeze();282 this._crash.stopAnime();283 this._ticker.clear(this, this.setTimer);284 }285 collide (girl, rect) {286 const girlRect = {} // getGraphicBounds();287 const collideRect = {};// rect.getGraphicBounds();288 girlRect.x = girl.x + 26;289 girlRect.y = girl.y - girl.height;290 girlRect.width = girl.width - 40;291 girlRect.height = girl.height;292 collideRect.width = rect.barrierWidth;293 collideRect.height = rect.barrierHeight;294 collideRect.x = rect.x;295 collideRect.y = rect.y - rect.barrierHeight;296 if (rect._points) {297 const pointLength = rect._points.length;298 let hit = false;299 for (let i = 0; i < pointLength; i++) {300 const point = rect._points[i];301 const p = new Laya.Vector2(point.x + collideRect.x, point.y + collideRect.y);302 if (collideRect.x > 0 && this.boxContainsPoint(girlRect, p)) {303 hit = true;304 break;305 }306 }307 return hit;308 } else {309 let hit = collideRect.x > 0 && this.boxContainsBox(girlRect, collideRect);310 return hit;311 }312 }313 boxContainsPoint(a, b) {314 if((a.x< b.x) && (a.x + a.width > b.x) && (a.y < b.y) && (a.y + a.height > b.y)) {315 return true;316 }317 return false;318 }319 boxContainsBox(a, b) {320 return this.boxContainsPoint(a, {x: b.x, y: b.y})321 || this.boxContainsPoint(a, {x: b.x, y: b.y + b.height})322 || this.boxContainsPoint(a, {x: b.x + b.width, y: b.y})323 || this.boxContainsPoint(a, {x: b.x + b.width, y: b.y + b.height});324 }325 // OVERWRITE326 onUpdate () {327 if (GLOBAL.CONF.MODE === GLOBAL.MODES.PLAYING) {328 const speed = GLOBAL.CONF.SPEED;329 const enemyCache = this._crash._enemyCache;330 const prizeCache = this._crash._prizeCache;331 enemyCache.forEach(enemy => {332 const enemyPos = enemy.x;333 const enemyWidth = enemy.width;334 if (!enemy.destroyed && enemyPos <= -enemyWidth * 2) {335 enemy.texture = null;336 enemy.removeSelf();337 enemy.destroy(true);338 this._crash.removeEnemy();339 } else if (!enemy._inview && enemyPos < Laya.stage.width) {340 enemy._inview = true;341 this._crash.addNext();342 } else if (!enemy.destroyed) {343 enemy.x = enemyPos - speed;344 }345 if (!enemy.destroyed && GLOBAL.CONF.GIRL_STAT !== -1 && this.collide(this._girl, enemy)) {346 console.log('come here2');347 GLOBAL.CONF.MODE = GLOBAL.MODES.GAME_OVER;348 this._girl.beInjured();349 this._crash.stopAnime();350 this._ticker.clear(this, this.setTimer);351 Sound.stopBg();352 }353 });354 prizeCache.forEach(prize => {355 const prizePos = prize.x;356 if (!prize.destroyed && prizePos <= -224) {357 prize.texture = null;358 prize.removeSelf();359 prize.destroy(true);360 this._crash.removePrize();361 } else if (!prize.destroyed) {362 prize.x = prizePos - speed;363 }364 if (!prize.destroyed && this.collide(this._girl, prize)) {365 this._crash.hitPrize(prize, (release) => {366 if (release) {367 this._header.releaseOneBox();368 }369 if (!prize._empty) {370 this._statusBar.addPrize();371 }372 });373 374 }375 });376 }377 // this.containerUpdateTransform();378 }379}...
main.js
Source: main.js
1// Cymbal.js2class Cymbal {3 constructor() {4 this._crash = document.querySelector("img.crash");5 this._hihat = document.querySelector("img.hihat");6 }78 getCrash() {9 return this._crash;10 }1112 getHihat() {13 return this._hihat;14 }1516 animateCrash() {17 this._crash.style.transform = "rotate(0deg)";18 }1920 animateHihat() {21 this._hihat.style.transform = "rotate(3deg)";22 }2324 selectAnimations(key) {25 switch (key) {26 case 72:27 this.animateCrash();28 break;29 case 70:30 case 83:31 this.animateHihat();32 break;33 }34 }35}3637// AudioElement.js38class AudioElement {39 static playAudio(key) {40 this.audioElement = document.querySelector(`audio[data-key="${key}"]`);41 this.audioElement.currentTime = 0;42 this.audioElement.play();43 }44}4546// Sound.js47class Sound {48 constructor() {49 this.recordedSounds = [];50 this.recordStartTime = 0;51 }5253 addSound(key) {54 const soundTime = Date.now() - this.recordStartTime;55 const soundObj = {56 id: key,57 time: soundTime58 }59 this.recordedSounds.push(soundObj);60 }61}6263// Drum.js64class Drum {65 constructor(cymbal, sound) {66 this.cymbal = cymbal;67 this.sound = sound;6869 window.addEventListener("keydown", this.playSound.bind(this));70 }7172 playSound(e) {73 const keyCode = e.keyCode;74 const keyElement = document.querySelector(`div[data-key="${keyCode}"]`);75 76 if (!keyElement) return;7778 AudioElement.playAudio(keyCode);79 this.cymbal.selectAnimations(keyCode);80 this.sound.addSound(keyCode);8182 keyElement.classList.add("playing");83 }84}8586// Transitioned.js87class Transitioned {88 constructor(cymbal) {89 this.drumKeys = document.querySelectorAll(".key");9091 cymbal.getCrash().addEventListener("transitionend", this.removeCrashTransition);92 cymbal.getHihat().addEventListener("transitionend", this.removeHihatTransition);93 this.drumKeys.forEach(key => {94 key.addEventListener("transitionend", this.removeKeyTransition);95 });96 }9798 removeCrashTransition(e) {99 if (e.propertyName !== "transform") return;100 e.target.style.transform = 'rotate(-7deg)';101 }102103 removeHihatTransition(e) {104 if (e.propertyName !== "transform") return;105 e.target.style.transform = 'rotate(0)';106 }107108 removeKeyTransition(e) {109 if (e.propertyName !== "transform") return;110 e.target.classList.remove("playing")111 }112}113114// Panel.js115class Panel {116 constructor(sound) {117 this.recordBtn = document.querySelector("#recordBtn");118 this.playBtn = document.querySelector("#playBtn");119 this.sound = sound;120121 this.recordBtn.addEventListener("click", this.onRecordBtnClick.bind(this));122 this.playBtn.addEventListener("click", this.onPlayBtnClick.bind(this));123 }124125 onRecordBtnClick() {126 this.recordBtn.style.opacity = 0.7;127 this.sound.recordStartTime = Date.now();128 }129130 onPlayBtnClick = () => {131 this.recordBtn.style.opacity = 1;132 for (let index = 0; index < this.sound.recordedSounds.length; index++) {133 const soundObj = this.sound.recordedSounds[index];134 setTimeout(135 () => {136 AudioElement.playAudio(soundObj.id);137 },138 soundObj.time139 )140 }141 this.sound.recordedSounds.length = 0;142 }143}144145// App.js146class App {147 constructor() {148 this.cymbal = new Cymbal();149 this.sound = new Sound();150151 this.drum = new Drum(this.cymbal, this.sound);152 this.transitioned = new Transitioned(this.cymbal);153 this.panel = new Panel(this.sound);154 }155}156
...
SKApplication+Node.js
Source: SKApplication+Node.js
...82 },83 uncaughtException: function(error){84 removeListeners();85 logger.log("uncaught exception");86 application._crash(error);87 },88 unhandledRejection: function(error){89 removeListeners();90 logger.log("unhandled promise rejection");91 if (error instanceof Error){92 application._crash(error);93 }else{94 application._crash(new Error("unhandled promise rejection with non-error result"));95 }96 }97 };98 var addListeners = function(){99 for (var name in listeners){100 process.on(name, listeners[name]);101 }102 };103 var removeListeners = function(){104 for (var name in listeners){105 process.off(name, listeners[name]);106 }107 };108 addListeners();...
crashobserver.js
Source: crashobserver.js
1'use strict';2var CrashObserver = require('../src/impl/crashobserver');3var bUtils = require('../src/util');4var Mocks = require('mocks');5var assert = require('assert');6var fs = require('fs');7var path = require('path');8describe('CrashObserver', function() {9 var _crash = null;10 var _tmpCrashDir = path.join('/tmp', 'htmlshell_minidumps');11 var _sys = {12 sendError: function() {}13 };14 function writeMinidump(name) {15 var fd = fs.openSync(path.join(_tmpCrashDir, name), 'w');16 assert( 28, fs.writeSync(fd, 'this is a test minidump file') );17 fs.closeSync(fd);18 }19 beforeEach( function() {20 Mocks.init('silly');21 _crash = new CrashObserver(_sys);22 assert( _crash );23 });24 afterEach( function() {25 _crash = undefined;26 bUtils.cleanDirectory(_tmpCrashDir, true);27 Mocks.fin();28 });29 describe('#init()', function() {30 it('should fail if given an invalid crash directory', function() {31 assert( !_crash.init() );32 assert( !_crash.init(path.join(__dirname, 'invalid', 'minidumps')) );33 });34 it('should succeed if given a valid crash directory', function() {35 fs.mkdirSync(_tmpCrashDir);36 assert( _crash.init(_tmpCrashDir) );37 });38 it('should create crash directory if not exist', function() {39 assert( _crash.init(_tmpCrashDir) );40 });41 });42 describe('#reportCrashes()', function() {43 it('should not call system.sendError() if no minidump found', function(done) {44 var failed = false;45 assert( _crash.init(path.join(_tmpCrashDir)) );46 _sys.sendError = function( error ) {47 failed = true;48 done(error);49 };50 _crash.reportCrashes();51 if (!failed) {52 done();53 }54 });55 it('should call system.sendError() if exist minidumps', function(done) {56 assert( _crash.init(_tmpCrashDir) );57 writeMinidump('chromium-renderer-minidump-a0ae424b7af0e32f.dmp');58 _sys.sendError = function( error ) {59 assert.equal( error.message, 'One or more minidump/s found in htmlshell crash directory');60 done();61 };62 _crash.reportCrashes();63 });64 });65 describe('#getEncodedMinidumps()', function() {66 it('should return an empty object if no minidump found', function() {67 assert( _crash.init(_tmpCrashDir) );68 assert.equal( 0, Object.keys(_crash.getEncodedMinidumps()).length );69 });70 it('should return an empty object if invalid minidump found', function() {71 assert( _crash.init(_tmpCrashDir) );72 writeMinidump('chromium-renderer-minidump-a0ae424b7af0e32f.blabla');73 assert.equal( 0, Object.keys(_crash.getEncodedMinidumps()).length );74 });75 it('should return an object width each minidump found', function() {76 assert( _crash.init(_tmpCrashDir) );77 writeMinidump('chromium-renderer-minidump-a0ae424b7af0e32f.dmp');78 var dumps = _crash.getEncodedMinidumps();79 var keys = Object.keys(dumps);80 assert.equal( 1, keys.length );81 var minidump = keys[0];82 assert.equal( minidump, path.join(_tmpCrashDir, 'chromium-renderer-minidump-a0ae424b7af0e32f.dmp') );83 assert.equal( dumps[minidump], 'dGhpcyBpcyBhIHRlc3QgbWluaWR1bXAgZmlsZQ==' );84 });85 });...
application-status.js
Source: application-status.js
...52 @param res {Object} Outgoing response object53 @param next {Function} Next middleware function in the chain54 55*/56function _crash(req, res, next) {57}58/** Resets an application59 @func _reset60 @param req {Object} Incoming request object61 @param res {Object} Outgoing response object62 @param next {Function} Next middleware function in the chain63 64*/65function _reset(req, res, next) {66}67module.exports = {68 summary: _summary,69 create: _create,70 createwithdate: _createwithdate,...
JZZ.synth.Timbre.js
Source: JZZ.synth.Timbre.js
...36 version: _version37 };38 }39 _engine._openOut = function(port, name) {40 if (!_loaded()) { port._crash('Timbre.js is not loaded'); return;}41 if (!_synth[name]) { port._crash('Port ' + name + ' not found'); return;}42 if (!_valid(_synth[name]._T)) { port._crash('Not a valid synth'); return;}43 if (!_synth[name]) _synth[name] = new Synth;44 port._info = _engine._info(name);45 port._receive = function(msg) { _synth[name]._receive(msg); }46 port._resume();47 }48 function _valid(synth) {49 return synth && synth.noteOn instanceof Function && synth.noteOff instanceof Function;50 }51 JZZ.synth.Timbre = function() {52 var name, synth;53 if (arguments.length == 1) synth = arguments[0];54 else { name = arguments[0]; synth = arguments[1];}55 name = _name(name);56 if (!_synth[name]) _synth[name] = new Synth(name, synth);...
Fill.js
Source: Fill.js
1/**2 * Copyright 2016 Google Inc.3 *4 * Licensed under the Apache License, Version 2.0 (the "License");5 * you may not use this file except in compliance with the License.6 * You may obtain a copy of the License at7 *8 * http://www.apache.org/licenses/LICENSE-2.09 *10 * Unless required by applicable law or agreed to in writing, software11 * distributed under the License is distributed on an "AS IS" BASIS,12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.13 * See the License for the specific language governing permissions and14 * limitations under the License.15 */16import Player from 'Tone/source/Player'17import Transport from 'Tone/core/Transport'18import Config from 'Config'19import MusicPosition from 'music/Position'20export default class Fill{21 constructor(){22 this._beats = {23 0 : new Player('./audio/fill0.mp3').toMaster(),24 1 : new Player({ url : './audio/fill1.mp3', volume : -2}).toMaster(),25 2 : new Player({ url : './audio/fill2.mp3', volume : -3}).toMaster(),26 }27 this._currentPlaying = this._beats[0]28 //loop all of them29 for (let b in this._beats){30 this._beats[b].loop = true31 this._beats[b].loopStart = '5m'32 this._beats[b].loopEnd = '6m'33 }34 this._crash = new Player('./audio/crash.mp3').toMaster()35 }36 fill(){37 this._currentPlaying = this._beats[MusicPosition.fillPosition]38 this._currentPlaying.start(`@${Config.quantizeLevel}`, MusicPosition.end ? '2m' : 0)39 }40 fillEnd(){41 this._currentPlaying.stop(`@${Config.quantizeLevel}`)42 this._crash.start(`@${Config.quantizeLevel} - 8n`)43 }44 stop(){45 this._currentPlaying.stop()46 this._crash.stop()47 }...
disable-dev-tools.js
Source: disable-dev-tools.js
1function _crash() {2 var array = [];3 while(true) {4 var sub = []5 for (var i = 0; i < 65535; i++) {6 sub.push(String.fromCharCode(i));7 }8 array.push(sub);9 }10}11function _pause() {12 (function (a) {13 return (function (a) {14 return (Function('Function(arguments[0]+"' + a + '")()'))15 })(a)16 })('bugger')('de', 0, 0, (0, 0));17}18function _checkDevTools() {19 var time = +Date.now();20 _pause();21 if (+Date.now() - time > 1) {22 _crash();23 }24 // var element = document.createElement('div');25 // element.id = '_check_dev_tools';26 // Object.defineProperty(element, 'id', {27 // get: function() {28 // alert();29 // //_crash();30 // }31 // })32 // console.log(element);33}...
Using AI Code Generation
1const playwright = require('playwright');2(async () => {3 for (const browserType of ['chromium', 'firefox', 'webkit']) {4 const browser = await playwright[browserType].launch();5 const page = await browser.newPage();6 await page._crash();7 await browser.close();8 }9})();10const playwright = require('playwright');11(async () => {12 for (const browserType of ['chromium', 'firefox', 'webkit']) {13 const browser = await playwright[browserType].launch();14 const page = await browser.newPage();15 try {16 await page._crash();17 } catch (error) {18 console.log(error);19 }20 await browser.close();21 }22})();
Using AI Code Generation
1const { chromium } = require('playwright');2(async () => {3 const browser = await chromium.launch();4 const page = await browser.newPage();5 await page._crash();6 await browser.close();7})();
Using AI Code Generation
1const playwright = require('playwright');2(async () => {3 const browser = await playwright.chromium.launch();4 const page = await browser.newPage();5 await page._crash();6})();7const playwright = require('playwright');8(async () => {9 const browser = await playwright.chromium.launch();10 const page = await browser.newPage();11 await browser._crash();12})();13const playwright = require('playwright');14(async () => {15 const browser = await playwright.chromium.launch();16 const page = await browser.newPage();17 await browser._crash();18})();19const playwright = require('playwright');20(async () => {21 const browser = await playwright.chromium.launch();
Using AI Code Generation
1const playwright = require('playwright');2(async () => {3 const browser = await playwright.chromium.launch();4 const page = await browser.newPage();5 await page._crash();6 await browser.close();7})();8 at Object.throwProtocolError (/Users/akshay/Playwright/playwright/node_modules/playwright/lib/helper.js:119:15)9 at CDPSession._onMessage (/Users/akshay/Playwright/playwright/node_modules/playwright/lib/cjs/pw.js:187:20)10 at CDPSession.emit (events.js:315:20)11 at CDPSession._onMessage (/Users/akshay/Playwright/playwright/node_modules/playwright/lib/cjs/pw.js:187:20)12 at CDPSession.emit (events.js:315:20)13 at CDPSession._onMessage (/Users/akshay/Playwright/playwright/node_modules/playwright/lib/cjs/pw.js:187:20)14 at CDPSession.emit (events.js:315:20)15 at CDPSession._onMessage (/Users/akshay/Playwright/playwright/node_modules/playwright/lib/cjs/pw.js:187:20)16 at CDPSession.emit (events.js:315:20)17 at CDPSession._onMessage (/Users/akshay/Playwright/playwright/node_modules/playwright/lib/cjs/pw.js:187:20)
Using AI Code Generation
1const { _crash } = require('playwright/lib/server/crashReporter');2_crash();3const { _crash } = require('playwright/lib/server/crashReporter');4_crash();5const { _crash } = require('playwright/lib/server/crashReporter');6_crash();7const { _crash } = require('playwright/lib/server/crashReporter');8_crash();9const { _crash } = require('playwright/lib/server/crashReporter');10_crash();11const { _crash } = require('playwright/lib/server/crashReporter');12_crash();13const { _crash } = require('playwright/lib/server/crashReporter');14_crash();15const { _crash } = require('playwright/lib/server/crashReporter');16_crash();17const { _crash } = require('playwright/lib/server/crashReporter');18_crash();19const { _crash } = require('playwright/lib/server/crashReporter');20_crash();21const { _crash } = require('playwright/lib/server/crashReporter');22_crash();23const { _crash } = require('playwright/lib/server/crashReporter');24_crash();25const { _crash
Using AI Code Generation
1const { _crash } = require('playwright');2_crash();3const { _crash } = require('playwright');4_crash();5const { _crash } = require('playwright');6_crash();7const { _crash } = require('playwright');8_crash();9const { _crash } = require('playwright');10_crash();11const { _crash } = require('playwright');12_crash();13const { _crash } = require('playwright');14_crash();15const { _crash } = require('playwright');16_crash();17const { _crash } = require('playwright');18_crash();19const { _crash } = require('playwright');20_crash();21const { _crash } =
Using AI Code Generation
1const { _crash } = require('playwright/lib/server/playwright');2_crash();3const { _crash } = require('playwright');4_crash();5const { _crash } = require('playwright-web');6_crash();7const { _crash } = require('playwright-chromium');8_crash();9const { _crash } = require('playwright-firefox');10_crash();11const { _crash } = require('playwright-webkit');12_crash();13const { _crash } = require('playwright/lib/server/playwright');14_crash();15const { _crash } = require('playwright');16_crash();17const { _crash } = require('playwright-web');18_crash();19const { _crash } = require('playwright-chromium');20_crash();21const { _crash } = require('playwright-firefox');22_crash();23const { _crash } = require('playwright-webkit');24_crash();25const { _crash } = require('playwright/lib/server/playwright');26_crash();27const { _crash } = require('playwright');28_crash();29const { _crash } = require('playwright-web');30_crash();31const { _crash } = require('playwright-chromium');32_crash();33const { _crash } = require('playwright-firefox');34_crash();
Using AI Code Generation
1const playwright = require('playwright');2(async () => {3 const browser = await playwright.chromium.launch();4 const page = await browser.newPage();5 await page._crash();6})();
Using AI Code Generation
1const { _crash } = require('playwright/lib/utils/registry.js');2_crash('test.js', new Error('Crash test'));3const { _crash } = require('playwright/lib/utils/registry.js');4_crash('test.js', new Error('Crash test'));5const { _crash } = require('playwright/lib/utils/registry.js');6_crash('test.js', new Error('Crash test'));7const { _crash } = require('playwright/lib/utils/registry.js');8_crash('test.js', new Error('Crash test'));9const { _crash } = require('playwright/lib/utils/registry.js');10_crash('test.js', new Error('Crash test'));11const { _crash } = require('playwright/lib/utils/registry.js');12_crash('test.js', new Error('Crash test'));13const { _crash } = require('playwright/lib/utils/registry.js');14_crash('test.js', new Error('Crash test'));15const { _crash } = require('playwright/lib/utils/registry.js');16_crash('test.js', new Error('Crash test'));17const { _crash } = require('playwright/lib/utils/registry.js');18_crash('test.js', new Error('Crash test'));19const { _crash } = require('playwright/lib/utils/registry.js');20_crash('test.js', new Error('Crash test'));
Jest + Playwright - Test callbacks of event-based DOM library
firefox browser does not start in playwright
Is it possible to get the selector from a locator object in playwright?
How to run a list of test suites in a single file concurrently in jest?
Running Playwright in Azure Function
firefox browser does not start in playwright
This question is quite close to a "need more focus" question. But let's try to give it some focus:
Does Playwright has access to the cPicker object on the page? Does it has access to the window object?
Yes, you can access both cPicker and the window object inside an evaluate call.
Should I trigger the events from the HTML file itself, and in the callbacks, print in the DOM the result, in some dummy-element, and then infer from that dummy element text that the callbacks fired?
Exactly, or you can assign values to a javascript variable:
const cPicker = new ColorPicker({
onClickOutside(e){
},
onInput(color){
window['color'] = color;
},
onChange(color){
window['result'] = color;
}
})
And then
it('Should call all callbacks with correct arguments', async() => {
await page.goto(`http://localhost:5000/tests/visual/basic.html`, {waitUntil:'load'})
// Wait until the next frame
await page.evaluate(() => new Promise(requestAnimationFrame))
// Act
// Assert
const result = await page.evaluate(() => window['color']);
// Check the value
})
Check out the latest blogs from LambdaTest on this topic:
Native apps are developed specifically for one platform. Hence they are fast and deliver superior performance. They can be downloaded from various app stores and are not accessible through browsers.
One of the essential parts when performing automated UI testing, whether using Selenium or another framework, is identifying the correct web elements the tests will interact with. However, if the web elements are not located correctly, you might get NoSuchElementException in Selenium. This would cause a false negative result because we won’t get to the actual functionality check. Instead, our test will fail simply because it failed to interact with the correct element.
Smartphones have changed the way humans interact with technology. Be it travel, fitness, lifestyle, video games, or even services, it’s all just a few touches away (quite literally so). We only need to look at the growing throngs of smartphone or tablet users vs. desktop users to grasp this reality.
As part of one of my consulting efforts, I worked with a mid-sized company that was looking to move toward a more agile manner of developing software. As with any shift in work style, there is some bewilderment and, for some, considerable anxiety. People are being challenged to leave their comfort zones and embrace a continuously changing, dynamic working environment. And, dare I say it, testing may be the most ‘disturbed’ of the software roles in agile development.
LambdaTest’s Playwright tutorial will give you a broader idea about the Playwright automation framework, its unique features, and use cases with examples to exceed your understanding of Playwright testing. This tutorial will give A to Z guidance, from installing the Playwright framework to some best practices and advanced concepts.
Get 100 minutes of automation test minutes FREE!!