2016-10-18 13 views
1

分度器を使用して角度のないウェブサイトをテストしようとしています。私のコードは次のとおりです。分度器を使用して角度のないウェブサイトをテストする

describe("Supplier Portal: Login ", function() { 
    //ui.setSmallScreenSize(); 
    // ui.testLogger(100); 
    it("test", co.wrap(function*() { 
     browser.ignoreSynchronization = true; 

     yield browser.driver.get("https://cit.supplier.ext.here.com/"); 
     yield element(by.xpath("//*[@id=\"rnav\"]/li[2]/a")).click(); 

     var elmOK = element(by.xpath("//*[@id=\"sign-in-email\"]")); 
     browser.driver.wait(protractor.until.elementIsVisible(elmOK.getWebElement())) 

    })); 
}); 

をしかし、私は、私は、次のエラーを得たコードを実行しようとすると:

Failed: No element found using locator: By(xpath, //*[@id="sign-in-email"]) 

をしかし要素は、ウェブサイトにあります。

あなたは非角度サイト上で作業してbrowser.ignoreSynchronization = trueを使用しているので、分度器が使用可能になるまでangular変数を待たないので、それはそれのでオフのテストを発射開始し、私は間違って

答えて

1

をやっている何かアドバイスしてくださいアプリは準備ができていると思っています、詳細はhereです。

Expected Conditionsを使用してControl Flowを操作する必要があるので、分度器は何かを待っていることを知っています。これにより、テストの一貫性と信頼性が向上します。

あなたを導くためにいくつかの例:DOMに/現在ロードされる要素の

待ち:私は渡された

var EC = protractor.ExpectedConditions; 
var ele = element(by.css('div.class')); 
browser.wait(EC.presenceOf(ele), 5000); 

5000パラメータ値が5の最大を待つと言います5秒以内に存在しない場合は失敗し、失敗します。目に見える要素の

待ち:クリック可能にする要素の

browser.wait(EC.visibilityOf(ele), 5000); 

待ち:

browser.wait(EC.elementToBeClickable(ele), 5000); 

繰り返しますが、それはこれらが暗黙の待機していることに注意することが重要だと彼らは最大をお待ちしております時間パラメータのが提供されます。待機する時間は保証されておらず、待機するように指示した要素が見つかるとすぐに消えます。

関連する問題