1

PhantomJS V 1.8.1 の使用

前もって感謝します。

backbone.js を使用して開発中の Web サイトでいくつかのテストを実行しようとしています。

私のテストの 1 つは、Canvas が存在するかどうかを確認してクリックすることです。私の問題は、キャンバス要素を取得するために使用するセレクターが何であれ、セレクターにそれを見つけることができないことです。ページを表示するときに Google Chrome で同じ CSS セレクターを使用すると、すべて問題ありません。最初は、要素がページに存在しないために問題が発生した可能性があると考えましたが、キャンバスに挿入された他の要素が存在するため、これが問題ではないことは 99% 確信しています。

私が使用しようとしたセレクターは次のとおりです。

document.querySelectorAll('#idOfCanvas');

document.querySelectorAll('canvas#idOfCanvas');

また.classClassName:nth(1)、タイヤ セレクターを選択しても機能しません (提供されている他の例と同様に、Google Chrome でも機能します)。

キャンバスには、クラスセレクターを使用しないでセレクターによって選択されるクラス名があります。

どんな助けでも大歓迎です。

乾杯 :)

また

前述のように、Canvas がコンテナ div として存在することはほぼ確実です。また、ページに同じ className を持つ 4 つの要素 (そのうちの 2 つはキャンバス) があり、実行すると 4 つの要素が返されます。

document.querySelectorAll('.className').length = 4; を返します。

4

2 に答える 2

0

次のようなものがあるとします。

<canvas id="idOfCanvas"></canvas>

これはうまくいくはずです:

canvas = document.getElementById("idOfCanvas");
// or
canvas = document.querySelector("#idOfCanvas"); // Only get the first match, ID's should be unique, any way.;
// or
canvas = document.querySelectorAll("#idOfCanvas")[0];
// or
canvas = document.getElementsByTagName("canvas")[0]; // Get the first <canvas> element.

ただし、スクリプトの実行時にキャンバス要素が実際に読み込まれていることを確認する必要があります。たとえば、このonloadチュートリアルをご覧ください。

于 2013-02-01T12:05:26.787 に答える