2017-02-18 21 views
2

我試圖自動化和朗姆酒一個簡單的註冊表單,但我得到錯誤說「失敗:Fn不是函數」。下面是我的代碼當嘗試自動化登錄頁面的e2e時出現錯誤「失敗:Fn不是函數」

describe('Locator testing by model', function(){ 

    it('automate user register form', function(){ 
     browser.get('http://www.way2automation.com/angularjs-protractor/registeration/#/login'); 
     element(by.model('Auth.user.name')).sendKeys('angular'); 
     element(by.model('Auth.user.password')).sendKeys('password'); 
     element(by.model('model[options.key]')).sendKeys('zafaque'); 
     element(by.buttonText('Login')).click(); 
     browser.wait(3000); 
    }); 
}); 

以下是錯誤詳細

1) Locator testing by model automate user register form 
    Message: 
    Failed: fn is not a function 
    Stack: 
    TypeError: fn is not a function 
     at /usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver.js:716:14 
     at TaskQueue.execute_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2913:14) 
     at TaskQueue.executeNext_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2896:21) 
     at /usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2820:25 
     at /usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:639:7 
     at process._tickCallback (node.js:369:9) 
    From: Task: <anonymous> 
     at pollCondition (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2359:16) 
     at /usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2355:9 
     at new ManagedPromise (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:1082:7) 
     at /usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2354:14 
     at TaskQueue.execute_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2913:14) 
     at TaskQueue.executeNext_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2896:21) 
     at /usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2775:27 
     at /usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:639:7 
     at process._tickCallback (node.js:369:9) 
    From: Task: <anonymous wait> 
     at ControlFlow.wait (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2352:17) 
     at Driver.wait (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver.js:712:29) 
     at ProtractorBrowser.to.(anonymous function) [as wait] (/usr/local/lib/node_modules/protractor/built/browser.js:60:29) 
     at Object.<anonymous> (/Users/zafaque/WebstormProjects/autotation/udemyProject/loginTest.js:12:17) 
     at /usr/local/lib/node_modules/protractor/node_modules/jasminewd2/index.js:94:23 
     at new ManagedPromise (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:1082:7) 
     at controlFlowExecute (/usr/local/lib/node_modules/protractor/node_modules/jasminewd2/index.js:80:18) 
     at TaskQueue.execute_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2913:14) 
     at TaskQueue.executeNext_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2896:21) 
     at /usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2820:25 
    From: Task: Run it("automate user register form") in control flow 
     at Object.<anonymous> (/usr/local/lib/node_modules/protractor/node_modules/jasminewd2/index.js:79:14) 
    From asynchronous test: 
    Error 
     at Suite.<anonymous> (/Users/zafaque/WebstormProjects/autotation/udemyProject/loginTest.js:6:5) 
     at Object.<anonymous> (/Users/zafaque/WebstormProjects/autotation/udemyProject/loginTest.js:4:1) 
     at Module._compile (module.js:409:26) 
     at Object.Module._extensions..js (module.js:416:10) 
     at Module.load (module.js:343:32) 
     at Function.Module._load (module.js:300:12) 

回答

3

您正在使用browser.wait()不正確。參閱官方文檔爲正確用法here

browser.wait()接受在下面的順序PARAMS

第一個參數是它可以是一個函數或 webdriver.promise.Promise或預期的條件條件第二個參數是 超時

但是您傳遞超時作爲第一個參數。 Incase你只是等待無條件的等待 - 只需使用browser.sleep(3000)

+0

感謝Aditya它的工作 –

相關問題