Javascript 如何打破while循环和if语句?

Javascript 如何打破while循环和if语句?,javascript,if-statement,webdriver-io,Javascript,If Statement,Webdriver Io,当if语句中的值大于0时,我需要中断while循环和if语句,然后代码应该从while循环中断 我怎样才能做到这一点 我的代码如下: it('x Accordion description should appear after 5 seconds upon being clicked', function(done) { //this.timeout(15000); //setTimeout(done, 6000); var i = 0; whi

当if语句中的值大于0时,我需要中断while循环和if语句,然后代码应该从while循环中断

我怎样才能做到这一点

我的代码如下:

it('x Accordion description should appear after 5 seconds upon being clicked', function(done) {
      //this.timeout(15000);
      //setTimeout(done, 6000);
      var i = 0;
      while (i < 15000) {
          browser.click('#accordion');
          //var timeoutText = browser.getText('#timeout').length;
          var timeoutText = browser.getText('#timeout').length;
          console.log(timeoutText);

            if (timeoutText > 0) {
                  browser.pause(5000);
                  console.log("Pass");
                  break;
                  i++;
            }
      }
it('x手风琴描述应在单击后5秒后出现’,功能(完成){
//这是超时(15000);
//设置超时(完成,6000);
var i=0;
而(i<15000){
浏览器。单击(“#手风琴”);
//var timeoutText=browser.getText('#timeout').length;
var timeoutText=browser.getText('#timeout').length;
console.log(timeoutText);
如果(超时文本>0){
浏览器暂停(5000);
控制台日志(“通过”);
打破
i++;
}
}

谢谢您的帮助。

使用
标签来突破

 outer: while (i < 15000) {
    browser.click('#accordion');
    //var timeoutText = browser.getText('#timeout').length;
    var timeoutText = browser.getText('#timeout').length;
    console.log(timeoutText);

    if (timeoutText > 0) {
        browser.pause(5000);
        console.log("Pass");
        break outer;
        i++;
    }
}
outer:while(i<15000){
浏览器。单击(“#手风琴”);
//var timeoutText=browser.getText('#timeout').length;
var timeoutText=browser.getText('#timeout').length;
console.log(timeoutText);
如果(超时文本>0){
浏览器暂停(5000);
控制台日志(“通过”);
打破外部;
i++;
}
}

将条件添加到while语句是否有效

it('x Accordion description should appear after 5 seconds upon being clicked', function(done) {
      //this.timeout(15000);
      //setTimeout(done, 6000);
      var i = 0;
      var timeoutText = 1;
      while (i < 15000 && timeoutText <= 0) {
          browser.click('#accordion');              
          timeoutText = browser.getText('#timeout').length;
          console.log(timeoutText);

            if (timeoutText > 0) {
                  browser.pause(5000);
                  console.log("Pass");
                  i++;
            }
      }
it('x手风琴描述应在单击后5秒后出现’,功能(完成){
//这是超时(15000);
//设置超时(完成,6000);
var i=0;
var timeoutText=1;
而(i<15000&&timeoutText 0){
浏览器暂停(5000);
控制台日志(“通过”);
i++;
}
}
另外,如果您不需要运行while循环,那么可以更简单地编写它,例如

it('x Accordion description should appear after 5 seconds upon being clicked', function(done) {
      //this.timeout(15000);
      //setTimeout(done, 6000);
      var i = 0;
      var timeoutText = browser.getText('#timeout').length;
      while (i < 15000 && timeoutText <= 0) {
          browser.click('#accordion');              
          timeoutText = browser.getText('#timeout').length;
          console.log(timeoutText);
          browser.pause(5000);
          console.log("Pass");
          i++;
      }
it('x手风琴描述应在单击后5秒后出现’,功能(完成){
//这是超时(15000);
//设置超时(完成,6000);
var i=0;
var timeoutText=browser.getText('#timeout').length;

while(i<15000&&timeoutText您的循环是正确的,它应该在while中中断,我唯一能弄明白的是尝试在if条件之外增加i(i++)。感谢您的帮助@Akshay Aggarwal在if语句之外添加i成功。如果有帮助,请向上投票;-)抱歉,我是stackoverflow的新手,如何更新您的上述评论?:)感谢您的帮助,在if语句之外添加I++成功了。
it('x Accordion description should appear after 5 seconds upon being clicked', function() {
    // http://webdriver.io/api/utility/waitUntil.html
    browser.waitUntil(function () {
      // Your condition to wait:
      browser.click('#accordion');
      return browser.getText('#timeout').length > 0
    }, 
    15200, // Waiting timeout 15 secs, but actually only 3 clicks will be done
    'expected accordion description should appear after 5 seconds upon being clicked', 
    5000) // Pooling interval - each 5 secs
}