2014-09-02 34 views
2

使用Selenium驅動程序,IE會保持在會話之間登錄,而FF和Chrome則不會。我想在基於「已登錄」元素ID的存在的測試中執行一些額外的命令。實習生Leadfoot有條件地運行命令

如何根據實習生條件執行代碼?

僞代碼:

return command 
.get(require.toUrl('http://example.com/')) 
.findById('signed-in-user') 
.then(function(){ 
    command 
     .findById('sign-out') 
     .click() 
}) 

但我怎麼處理這種情況已登錄的用戶不存在的情況呢?

這是這裏這個問題的一個副本:How to do conditional browser interactions with intern但關於實習2

回答

4

我找到了一個解決辦法,但它是稍微哈克。 使用findAll命令可以測試是否找到任何元素(存在元素)並對其執行操作。

實施例:

  // Log out if logged in 
      .findAllByCssSelector('#signed-in-user') 
       .then(function(elems) { 
        if(elems.length > 0) { 
         command 
         .findById('signed-in-user') 
          .click() 
          .end() 
         .findByLinkText('Sign out') 
          .click() 
          .end() 
        } 
        return true; 
       }) 
       .end()