2017-02-22 2 views
1

私はprotactor 5.1.1とchromedriver_2.27で作業しています。 スケジュールボタンをクリックすると、「スケジューリング完了」というメッセージが表示されるまで待ちます。私は成功していない次のコード(と同様にコメントされているコード)を試してみました。いつでも分度器は関係なく続きます。何か案は? isElementPresent()を誤っ - エラーメッセージとして分度器:オブジェクトをクリックしたときに表示されるテキストを探します

that.serviceFilter.sendKeys(serviceName).then(function() { 
     utilsObj.doActionWithWait(that.serviceRowInServiceList, function() { 
      utilsObj.doActionWithWait(that.pickFilteredService, function() { 
       that.pickFilteredService.click().then(function() { 
        that.selectAllBtn.click().then(function() { 
         that.actionBtn.click().then(function() { 
          that.scheduleBtn.click() 



          // //EC = protractor.ExpectedConditions; 
          // var aaa = element(by.xpath("//*[@id='SchedulingInProgress']")); 
          // browser.wait(function() { 
          //  return EC.visibilityOf(aaa).call().then(function (present) { 
          //   console.log('\n' + 'looking for element....') 
          //   if (present) { 
          //    console.log('\n' + 'element not found!') 
          //    return true; 
          //   } 
          //   else { 
          //    console.log('\n' + 'element found!!') 
          //    return false; 
          //   } 
          //  }); 
          // }, 50000); 

         }); 
         browser.wait(function() { 
          return browser.driver.isElementPresent(by.xpath("//*[@id='SchedulingInProgress']")) 

         }) 


        }); 

       }); 

      }); 

     }); 

    }); 

答えて

1

enter image description hereenter image description here

は、使用しているを示しています。 ElementFinderオブジェクト上の関数で、ドライバ上では機能しません。

正しくない使い方 - browser.driver.isElementPresent()

正しい使い方 - browser.driver.FindElement().isElementPresent()

詳細here。あなたの目標は、特定の要素が現れるまで待つことです。あなたが正しい道にいる場合 - Expected Conditionsを使用して、browser.waitにうまく収まります。あなたはこのような何かを行うことができます - browser.wait(EC.visibilityOf(element), 5000); //wait for an element to becomeクリッカブル

ルックhereを、その使用

0

に最後に、私は解決策を持っています!

var EC = protractor.ExpectedConditions; var elm = element(by.css("#SchedulingInProgress > div:nth-child(2) > div")); browser.wait(EC.visibilityOf(elm), 50000); expect(elm.getText()).toEqual('Scheduled 1 out of 1');

関連する問題