2

私は AngularJS が初めてで、主に e2e 部分を使用します (ジャスミンを使用)。文字通り数日間、これでどこにも行けなくなった後(控えめに言っても、ドキュメントはかなり拒食症であることがわかりました!) 誰かがここで私を助けてくれるかどうか疑問に思っています:

Web サイトは a=href リンクの html リストを生成します。次のように angularjs e2e を使用してリンクを「クリック」できます。

element('li a').click();

罰金。しかし、ここで 2 つの質問があります。

  1. リストに 6 つのリンクがある場合、これはどのリンクをクリックしていますか?? (テストされている html コードでは、これらのリンクには一意の ID がなく、いくつかはまったく同じ参照/URL などである可能性があります..)?

  2. リスト内の各リンクをループするにはどうすればよいですか? つまり、 element(links[1]).click() -> ... 何でもしてから戻る -> element(links[2]).click() -> ... 何でもしてから戻る ... など。 ..

(注: angularjs e2e の「要素」のバージョンは、「angular.element」と同じではありません。)

4

2 に答える 2

3

解決しました!!!

element('li:eq(0) a').click(); //<-- clicks the first link.

element('li:eq(1) a').click(); //<-- clicks the 2nd link.

等...

ここの開発者が私にこれを見せてくれましたが、彼がどのように知っていたのかわかりません!

于 2012-11-21T17:50:03.400 に答える
2

わかりました-他の誰かが興味を持っている場合に備えて(このことを理解しようとしているのは地球上で私だけではありません!)私は自分自身で質問1を解決しました:値をリストにハードコーディングすることにより、

element('li a')

...最後にリストされたアイテムを選択します。


そのため、'element()' でリスト内の特定の項目を選択するという一見解決不可能な問題に取り組みます。

console.log("ROYDEBUG: " + element('li a'));

...コンソールログに「ROYDEBUG: [object Object]」を返します。

しかし、「x」リスト項目があることを認識させることができます。私がこれを行う場合:

   element('li a').query(function (selectedElements, done) {
        selectedElements.each(function(idx,elm)
            {
                var thisOne = selectedElements[idx]; //<-- (same as "= this;").
                console.log("ROYDEBUG:  " + idx + " - " + thisOne);
                //element(thisOne).click();                //<-- doesn't work :(
                //element(this).click();                   //<-- doesn't work :(
                //element(selectedElements[idx]).click();  //<-- doesn't work :(
            });
        done();
   });

次に、コンソールでこれを取得します。

ROYDEBUG: [object Object]
ROYDEBUG:  0 - http://localhost:9876/app/index.html#/coupon/100
ROYDEBUG:  1 - http://localhost:9876/app/index.html#/coupon/100
ROYDEBUG:  2 - http://localhost:9876/app/index.html#/coupon/100
ROYDEBUG:  3 - http://localhost:9876/app/index.html#/coupon/100
ROYDEBUG:  4 - http://localhost:9876/app/index.html#/coupon/100
ROYDEBUG:  5 - http://localhost:9876/app/index.html#/coupon/100

...リストに6つのアイテムがあることがわかります。ただし、これらの返された「要素」に「要素()。クリック()」を使用することはできません。これは、各リンクの「href =」部分からのテキスト文字列にすぎないためです(上記のコンソール出力でわかるように) .

于 2012-11-20T12:47:46.060 に答える