2017-02-11 11 views
0

私は両方のJavascriptでプログラミングを始めたばかりで、QAテストの作業を開始しました。私の目標は今かなり簡単です。リストから選択する前に、すべての要素がリピータにロードされていることを確認します。テストを進める前に最初と最後の要素が出るまで待っていました。リピーターからの印刷要素

これを行うには、おそらくもっと良い方法があると思いますが、私に提案を投げかけてください。私はオンラインで探していて、リピーター内の要素の値をコンソールに出力する方法を詳述したコードスニペットを見つけました。

私はまず最初と最後の要素を印刷して、正しく取得していることを確認しました。私はこれをしました:

var repeaterElements = element.all(by.repeater(repeaterObj)); 
var text = repeaterElements.first().toString(); 
console.log(text); 

私の目標は、単に最初の要素を印刷することです。しかし、代わりに[オブジェクトオブジェクト]を印刷するようにしました。私はこれを間違って推論していますか?私は '。first()'が私にリピーターの最初の要素を与えるだろうと思った!

+0

'.toString()'をオフにすると、意図したとおりにオブジェクトが出力されると思います。 –

答えて

1

-hopper

私はあなたが欠けているものを100%わからないんだけど、私はこれがそれだと思います。これは、リピーターを通過し、すべての要素を選択し、それらの要素のテキストを取得し、それをコンソールで処理する必要があります。あなたが実際に慰め以外の何かをするつもりなら、約束を守ってください!

+0

お世話になりました!これはまさに私がやろうとしていたものでした。私はまだJSのしっかりとした把握をしようとしていますが、各自がどのように機能を果たすのか説明できますか? つまり、私は、この「obj」がどこから来ているのかを、各自がどのように知っているのか混乱しています。同様に、console.logが使用するために渡されるパラメータ 'text'はどこにありますか? 論理的には、obj.getText()を実行することの解像度ですが、私はそれが '.then(function(text){console.log(text)} 'のパラメータにその値を渡す方法を知っていると思います。 ); '? うまくいけばそれは理にかなっています。私はこの質問がフレーズに難しいことがわかった – Hopper

+0

メソッドはそれぞれ、単にこの場合のelement.allのメソッドです。関数を受け取り、各要素を最初の引数に渡します(これは2番目の引数もとると思いますインデックスである)。 getTextの場合、それは要素の利用可能なメソッドであり、 "each"から返され、 "off"できる約束を返します。個々の要素をコンソール化するのに役立ちます。これらの要素にはメソッドがあります。 – jdgower

+0

ちょっと私はこのスレッドをもう少し長くしていることは分かっていますが、リピーターと多少関連していると思いますので、私はあなたに尋ねました。私は、エレメントをクリックする前に、リピーターの最初と最後のエレメントが可視/完全にロードされるのを待つ簡単なヘルパー関数を作成したかったのです。私は持っています: 'var EC = protractor.ExpectedConditions; var repeaterElements = element.all(byrepeater(repeaterObj)); return browser.wait(EC.visibilityOf(repeaterElements.first())&& EC.visibilityOf(repeaterElements.last())、5000); ' これはうまくいくようですが、正しい実装が必要です! :) – Hopper