2016-05-18 8 views
0

私はこのコードを持っていますが正常に動作しますが、ループ内で実行しての要素数をカウントして各リンクをテストするようにします。ループ内で実行されるテストを作成する

module.exports = { 
    'Unitel Fitness - click' : function (browser) { 
    browser 
     .url('http://m.unitel.ao/fit/') 
     .execute('scrollIntoView(alignToBottom)') 
     .waitForElementVisible('.socal>span:nth-child(1) a', 6000) 

     .moveToElement('.socal>span:nth-child(1) a', 3, 3) 
     .pause(6000) 
     .click(".socal>span:nth-child(1) a") 
     .pause(6000) 
     .keys(['\uE006']) 

     .window_handles(function (result) { 
      var handle = result.value[1]; 
      browser.switchWindow(handle); 
      browser.pause(1000); 
      //browser.assert.urlContains('facebook'); 
      browser.closeWindow(); 
     }) 
     .end(); 
    } 
}; 

私はこのコードをアップグレードしましたが、それでも私が欲しいものを実行していません。 結果は次のとおりです。(すでに時間を割いてみました)

リンク数:4実行前にval:実行前にval:実行前にval:実行前にval:実行中です。要素を待つ間にタイムアウトしました< .socal> span:nth-​​child( "+ i +")a>を8000ミリ秒間表示します。 - 「目に見える」と予想しかしだ:ループコレクションを取得し、.lengthを使用することができますなぜ

module.exports = { 
       'Social links' : function (browser) { 
     browser 
      .url('http://m.unitel.ao/fit/') 
      .execute(function(){ 
         return document.querySelectorAll(".socal>span").length; 
        }, 

      function(links) { 
       total_links = links.value; 

       console.log("Number of links: " + total_links); 

       for (var i = 1; i <= total_links; i++) { 
        console.log("i val before execute: " + i); 

        browser.execute('scrollIntoView(alignToBottom)'); 
        //browser.waitForElementVisible('.socal>span:nth-child("+ i +") a', 8000); 

        //call back function 
        browser.waitForElementVisible('.socal>span:nth-child("+ i +") a', 5000, function() { 

        browser.moveToElement('.socal>span:nth-child("+ i +") a', 3, 3); 
        browser.pause(8000); 
        browser.click(".socal>span:nth-child("+ i +") a"); 
        browser.pause(6000); 
        browser.keys(['\uE006']); 

        browser.window_handles(function (result) { 
         var handle = result.value[1]; 
         browser.switchWindow(handle); 
         browser.pause(8000); 
         //browser.assert.urlContains('facebook'); 
         browser.closeWindow(); 
        }) 
         }); 
       } 
      }) 

       // .end(); 
      } 
}; 
+0

あなたは何を試しましたか? – Aaron

+0

こんにちはAaron、forなどのforループを入れようとしました(var i = 0; i <= socal.length; i ++) – Rita

+1

ありがとうリタ。私はタイスクリプトを知らないので、あなたの質問に答えることはできませんが、これはおそらく初心者の質問であると言えます。そのように、私はあなたの答えに試したものを編集することをお勧めします。そうでなければ、あなたの質問に答えることができる人は、あなたが試したことを示していなければそうすることを嫌うかもしれません。 (この背後にある理由は、まず言語を使うことを学ぶべきであり、事前に調べなくても少しでも問題に答えることができれば、それを正しく学ぶことはできません) – Aaron

答えて

0

を見つけていませんか?それはより演奏的です。

client.getEls(classSel, function(collection) {  
      return collection.length; 
}); 
+0

こんにちはQualiT、私はあなたの提案を試みたが、それは私に "getElsは関数ではない" – Rita

関連する問題