我正在使用canvas(phaser.io游戏框架)制作游戏,并希望进行硒测试。可悲的是,我无法在画布上重放录制的动作。
例如,我无法重播此处按钮的点击https://phaser.io/examples/v2/input/button-open-popup
我在日志中得到了这个:
1.尝试在/ examples / v2 / input / button-open-popup上执行open ...成功 2.Trying在index = 0上执行selectFrame ...成功 3.Trying在css = canvas上执行clickAt,值为422,502 ...成功
但屏幕上没有任何反应,弹出窗口没有弹出。
通过Selenium IDE点击画布是否有问题,或者我做错了什么?
答案 0 :(得分:1)
我为Phaser游戏做了一些自动化测试。 我们举一个例子,我必须点击一个菜单按钮。
我每次都精确点击按钮的方式是我创建了一个html页面,其宽度和高度与我的画布相同(首先,我决定了chrome窗口的大小,对我来说,我使用的是800x900,然后得到画布大小),在我的html页面中我只输入javascript输出我点击的位置。 所以基本上我创建了一个html,与我的画布具有相同的尺寸,并在我的画布按钮的大致位置点击它。
以下是我用于测试的代码:
var mainState ={
preload: function(){
},
create: function(){
game.stage.backgroundColor = '#71c5cf';
game.scale.pageAlignHorizontally = true;
game.scale.pageAlignVertically = true;
},
update: function(){
getcoordinates();
}
};
function getcoordinates(){
if (game.input.mousePointer.isDown){
var x = game.input.activePointer.position.x;
var y = game.input.activePointer.position.y;
console.log("x" + x, "y" + y);
var worldx = game.world.centerX;
var worldy = game.world.centerY;
console.log("world x" + worldx, "world y"+ worldy);
}
};
var game = new Phaser.Game(384,683, Phaser.CANVAS);
game.state.add('mainState', mainState);
game.state.start('mainState');
至于检查我的行动是否成功,我使用了JavascriptExecutor。在Selenium中,我创建了一些功能,导航到坐标并执行点击。