2015-11-03 125 views
4

我一直在尋找所有的互聯網,但似乎沒有任何可靠的資源或例子測量無角度的網站與量角器JS。如何使用量角器js測試無角網站?

目前,我的conf文件看起來像這樣

exports.config = { 
    seleniumServerJar: 'webdriver/selenium-server-standalone-2.48.2.jar', 
    specs: [ 
    'wikipedia-test-spec.js' 
    ], 
    chromeDriver : 'webdriver/chromedriver.exe', 

    multiCapabilities: [ 
    { 
     'browserName': 'chrome' 
    } 
    ], 

    }; 

我的維基百科測試spec.js看起來像這樣

describe("Tests a wikipedia page", function(){ 
    it('Should check if table exists', function(){ 
      browser.get('https://en.wikipedia.org/wiki/List_of_countries_and_dependencies_by_population'); 
      var table = browser.driver.findElement(by.name('table')); 
      expect(table.isPresent()).toBeTruthy(); 
    }); 

}); 

當我運行protractor conf.js,我得到一個錯誤類型undefined is not a function和我的規範失敗了。

UPDATE:錯誤

Stacktrace: 
    TypeError: undefined is not a function 
    at [object Object].<anonymous> (C:\nodejs\CGAngularTest\wikipedia-test-spec.js:5:26) 
    at C:\Users\jayarajp\AppData\Roaming\npm\node_modules\protractor\node_modules\jasminewd\index.js:94:14 
    at goog.async.run.processWorkQueue (C:\Users\jayarajp\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\goog\async\run.js:130:15) 
From: Task: Asynchronous test function: it() 
    at [object Object].<anonymous> (C:\Users\jayarajp\AppData\Roaming\npm\node_modules\protractor\node_modules\jasminewd\index.js:93:33) 
    at [object Object].<anonymous> (C:\Users\jayarajp\AppData\Roaming\npm\node_modules\protractor\node_modules\minijasminenode\lib\async-callback.js:45:37) 
    at [object Object].jasmine.Block.execute (C:\Users\jayarajp\AppData\Roaming\npm\node_modules\protractor\node_modules\minijasminenode\lib\jasmine-1.3.1.js:1174:17) 
    at [object Object].jasmine.Queue.next_ (C:\Users\jayarajp\AppData\Roaming\npm\node_modules\protractor\node_modules\minijasminenode\lib\jasmine-1.3.1.js:2209:31) 
    at [object Object]._onTimeout (C:\Users\jayarajp\AppData\Roaming\npm\node_modules\protractor\node_modules\minijasminenode\lib\jasmine-1.3.1.js:2199:18) 
Error 
    at [object Object].<anonymous> (C:\nodejs\CGAngularTest\wikipedia-test-spec.js:2:3) 
    at [object Object].jasmine.Env.describe_ (C:\Users\jayarajp\AppData\Roaming\npm\node_modules\protractor\node_modules\minijasminenode\lib\jasmine-1.3.1.js:913:21) 
    at [object Object].jasmine.Env.describe (C:\Users\jayarajp\AppData\Roaming\npm\node_modules\protractor\node_modules\minijasminenode\lib\jasmine-1.3.1.js:898:15) 
    at describe (C:\Users\jayarajp\AppData\Roaming\npm\node_modules\protractor\node_modules\minijasminenode\lib\jasmine-1.3.1.js:658:27) 
    at Object.<anonymous> (C:\nodejs\CGAngularTest\wikipedia-test-spec.js:1:63) 
+0

請張貼完整的錯誤回溯。 – alecxe

+0

用錯誤 –

+0

的完整堆棧跟蹤更新了問題我不會嘗試使用具有非Angular站點的量角器。量角器是Selenium/Selenium Web Driver的強化版本,它知道Angular如何工作。使用Selenium :) –

回答

4

isPresent() function

整個堆棧跟蹤可在ElementFinder實例,這是element()調用的結果。您可能需要在這裏使用driver.isElementPresent()

var table = browser.driver.findElement(by.name('table')); 
expect(table.isPresent()).toBeTruthy(); 

有:

var table = browser.driver.findElement(by.name('table')); 
expect(browser.driver.isElementPresent(table)).toBeTruthy(); 

或者,你也可以嘗試用element()

var table = element(by.name('table')); 
expect(table.isPresent()).toBeTruthy(); 

請注意,您還需要將與AngularJS的同步關閉

browser.ignoreSynchronization = true; 

另見:

+0

我在哪裏把'browser.ignoreSynchronization = true;'? –

+0

@DivyanthJayaraj你可以在你的測試中使用它,但是在你的量角器配置中更好的地方是'onPrepare()'。 – alecxe