2016-09-29 4 views
0

webdriverioでhtmlキャンバスをテストしています。キャンバス上のピクセルの色をテストする必要があります。webdriverioでキャンバスコンテキストを取得する

client.element('#canvas-id'); 
    }).then(function (ele) { 
     var ctx = ele.getContext('2d'); 
     var canvasColor = ctx.getImageData(50, 10, 1, 1).data; 
     //assert black at center of line 
     assert.equal(canvasColor[0], 255); 
     assert.equal(canvasColor[1], 255); 
     assert.equal(canvasColor[2], 255); 
    }); 

は、だからではなく、client.elementで返されるJSONオブジェクトの、私はのgetContextが提供されていますので、実際のHTML要素を取得する必要があります。これはwebdriverioフレームワークで可能ですか?

答えて

0

eleは、WebElementです。これは、ブラウザの実際の要素の一種です。 メソッドはありません。 WebElementには、canvasと対話する特別な機能はありません。

ですから、クライアント側でリクエストをexecuteする必要があります。

//... 
}).then(function (ele) { 
    client.execute(function(element) 
    { 
     // this code gets executed on the client 
     return element.getContext('2d').getImageData(50, 10, 1, 1).data; 
    }, ele).then(function(canvasColor) 
    { 
     //assert black at center of line 
     assert.equal(canvasColor[0], 255); 
     assert.equal(canvasColor[1], 255); 
     assert.equal(canvasColor[2], 255); 
    }); 
}); 

(私は、コードをテストしていない、それが動作するかどうか私たちに知らせてください)

関連する問題