2017-04-25 11 views
0

Javascript(Nightwatch JS)の新機能と一般的なプログラミングです。Nightwatch JS - IF Else IFアサーション

If、Else If、Elseのテストケースで、になっていない場合、Else Ifステートメントに進みます。

私は私のIF文の条件がアサーションであるので、それはだと思う。誰も私に私のIF文をどうするかについていくつかのポインタを与えることができれば、私は思っていた

().expect.element()。

基本的に私が確認したい:

If (checkbox is un-clickable) { 
run set code; 
} Else if (this checkbox is clickable) { 
run set code; 
} Else { 
.end(); 
} 

ここに私がやった私のサンプルテストです。

' Uninstall Missions Module ' : function(uninstallModule) { 
 
    \t uninstallModule 
 
    \t .url('http://drupal8.develop:8091/admin/modules/uninstall') 
 
    \t .setValue('#edit-text', "Missions") 
 
    \t .pause(800); 
 
    \t uninstallModule.expect.element('#edit-uninstall-missions').to.be.present; 
 
    \t uninstallModule.waitForElementVisible('//*[@id="system-modules-uninstall"]/table/tbody/tr[31]/td[3]/div/div/ul/li/a', 1000, false); 
 

 

 
    \t if (uninstallModule.expect.element('#edit-uninstall-missions').to.not.be.enabled) { 
 
    \t \t uninstallModule.expect.element('body').text.to.contain('Remove mission entities') 
 
    \t \t uninstallModule 
 
    \t \t .url('http://drupal8.develop:8091/admin/modules/uninstall/entity/mission') 
 
       .verify.urlEquals('http://drupal8.develop:8091/admin/modules/uninstall/entity/mission'); 
 
      uninstallModule.expect.element('body').text.to.contain('Are you sure you want to delete all mission entities?'); 
 
      uninstallModule.click('xpath', '//*[@id="edit-submit"]'); 
 
      uninstallModule 
 
       .pause(10000) 
 
       .verify.visible("body > div.layout-container > main > div.region.region-highlighted > div > h2", "All mission entities have been deleted."); 
 

 
    \t } else if (uninstallModule.expect.element('#edit-uninstall-missions').to.be.enabled) { 
 
    \t \t uninstallModule 
 
    \t \t .url('http://drupal8.develop:8091/admin/modules/uninstall') 
 
    \t  .setValue('#edit-text', "Missions"); 
 
    \t  uninstallModule.click('#edit-uninstall-missions'); 
 
    \t  uninstallModule.pause(800); 
 
    \t  uninstallModule.verify.urlEquals("http://drupal8.develop:8091/admin/modules/uninstall/confirm"); 
 
    \t  uninstallModule.click('xpath', '//*[@id="edit-submit"]'); 
 
    \t  uninstallModule.pause(1000); 
 
    \t  uninstallModule.verify.visible('body > div.layout-container > main > div.region.region-highlighted > div.messages.messages--status', "The selected modules have been uninstalled."); 
 

 
    \t } else { 
 
    \t \t uninstallModule.end(); 
 

 
    \t } 
 

 
    }, \t \t 
 
}

答えて

1

ナイトウォッチ(および他のE2Eテストフレームワーク)について知るには、2つの事柄

  1. は、すべてのアクションが非同期であります。コードがフレームワークのおかげで同期的に見える場合でも、最終的にはすべてが非同期です。 値を読み取るでも非同期コードが必要です
  2. 期待値を使用する場合、期待値が検証されない場合にコードがエラーをスローすると、値を読み取るためにコードを使用できません。

ナイトウォッチで、あなたはあなたが必要とする値を読み出すためにgetAttributeを使用することができます。

client.getAttribute('#edit-uninstall-missions', 'enabled', result => { 
    // I'm not sure about the type returned in result.value 
    // you can test it and adjust 
    const enabled = result && result.value !== "false" 
        && result.value !== false; 

    if (enabled){ 
    // Continue your test here 
    } else { 
    // Another test here 
    } 
}); 
+0

ありがとうございました。 –

0

は、ここに私がやったことです。

uninstallModule.getAttribute('#edit-uninstall-missions', 'disabled', function(results) { 

      console.log(results.value); 
      if (results.value == "true") { 
      console.log("It's true bro"); 
      } else if (results.value != "true") { 
      console.log ("It's null"); 
      } else { 
      console.log("It's Neither"); 
      } 
    });