2014-02-15 28 views
2

如果來自Protractor規範,我在browser.executeAsyncScript中執行腳本,應該如何通知腳本確實失敗?考慮下面的調用browser.executeAsyncScript:量角器:我應該如何傳播browser.executeAsync中的錯誤?

browser.executeAsyncScript((callback) -> 
    # How do I communicate an error condition here!? 
    callback() 
) 
.then((data) -> 
    console.log("Browser async finished without errors: #{data}") 
, (data) -> 
    console.log("Browser async finished with errors: #{data}") 
) 

我希望發生的是,爲了再調用錯誤回調。我該怎麼做呢?

回答

3

webdriverjs doc

driver.executeAsyncScript(function() { 
    var callback = arguments[arguments.length - 1]; 
    var xhr = new XMLHttpRequest(); 
    xhr.open("GET", "/resource/data.json", true); 
    xhr.onreadystatechange = function() { 
    if (xhr.readyState == 4) { 
     callback(xhr.responseText); 
    } 
    } 
    xhr.send(''); 
}).then(function(str) { 
    console.log(JSON.parse(str)['food']); 
}); 

因此,它似乎並不有一個錯誤回調,但你可以通過一些參數的回調方法。您可以使用它來傳播錯誤。

+0

是的,我已經通過將成功/失敗標誌傳遞給executeAsyncScript回調來實現它。 – aknuds1

相關問題