casper.then()
ホバー、クリック、フォーカスなど、いくつかのボタンの視覚的な状態をテストしようとしていますが、基本的に同じコマンドを何度もコピーしない方法を探していました。単純なループでこれを行うことができるはずだと思いました。
(現在) 5 つのボタンの小さな配列を作成し、記録したい状態ごとに CasperJS の手順を追加しながら、それらを while ループしました。残念ながら、実際に実行されるのは最後の手順のみです。
ループに関する多くの投稿を読みましたが、それらはすべて、ページ上のリンクをクリックするか、探しているものと一致しないその他のシナリオに関係しているようです。
多分私は密集しているだけですか?以下のコード...
casper.thenOpen( 'docs/buttons/test.html' );
var buttonStyles = [
{ selector: '.grey0', title: 'Button - Grey 0' },
{ selector: '.grey25', title: 'Button - Grey 25' },
{ selector: '.grey50', title: 'Button - Grey 50' },
{ selector: '.grey75', title: 'Button - Grey 75' },
{ selector: '.grey100', title: 'Button - Grey 100' },
];
while (buttonStyles.length > 0) {
buttonStyle = buttonStyles.pop();
casper.then(function(){
phantomcss.screenshot(buttonStyle.selector, buttonStyle.title);
});
casper.then(function(){
this.mouse.move(buttonStyle.selector);
phantomcss.screenshot(buttonStyle.selector, buttonStyle.title + ' - Hover');
});
casper.then(function(){
this.mouse.down(buttonStyle.selector);
phantomcss.screenshot(buttonStyle.selector, buttonStyle.title + ' - Down');
});
}
casper.test.done();