2016-06-24 19 views
5

Açısal kodu test etmek için iletki kullanıyorum. Test, webdriver-manager ile varsayılan olarak gelen chrome sürücüsü ile çalıştırdığımda iyi çalışıyor. Şimdi bu testi sunucu üzerinden çalıştırmam gerektiğinden phantomjs (başsız tarayıcı) ile aynı testi yapmak istiyorum. phantomjs aracılığıyla testi çalıştırırken Ama hatayı alıyorum:Phantomjs ile iletkileme testi yapamıyor

Failed: Angular could not be found on the page URL : retries looking for angular exceeded

Konf dosyasıdır:

// demo-test.js 
describe('Protractor Demo App', function() { 
jasmine.DEFAULT_TIMEOUT_INTERVAL = 10000000; 

beforeEach(function() { 
    browser.driver.manage().window().setSize(1280, 1024); 
}); 
it('should have a title', function() { 
    browser.get('URL'); 

    expect(browser.getTitle()).toEqual('Title'); 

}); 

bana yardım edin:

exports.config = { 
framework: 'jasmine', 
seleniumAddress: 'http://localhost:4444/wd/hub', 
specs: ['demo-test.js'], 
capabilities: { 
    browserName: 'phantomjs', 
    version: '', 
    platform: 'ANY' 
}; 

demo-test.js dosya benziyor. Ben Yanlış zaman aşımı artan

sudo apt-get install phantomjs

+1

PhantomJS'yi iletki ile önermem. Bunun yerine, tarayıcınızı sanal bir ekranla çalıştırmak için XVFB'yi sunucunuzda krom ile kullanmayı deneyin. – martin770

+0

Hey @ martin770 öneriniz için teşekkürler, bunu nasıl bulacağımı bulabileceğiniz herhangi bir belge bağlantısı sağlayabilir misiniz? –

cevap

1

aracılığıyla site resmi ve yüklü phantomjs talimat kullanarak iletki yüklediniz:

jasmine.DEFAULT_TIMEOUT_INTERVAL = 10000000; 

Bu zaman aşımı çok uzun aday olmamaya yasemin testi içindir. - sayfa artık sayfa yük ve açısal beklemek istiyorsanız bu yapılandırma dosyasını iletki eklemek:

getPageTimeout: timeout_in_millis //default 10 sec 
allScriptsTimeout: timeout_in_millis //default 11 sec 

burada zaman aşımları hakkında daha fazla - http://www.protractortest.org/#/timeouts Ayrıca

kök elemanı düzeltmek işaret olmadığını kontrol edin:

Ben phantomJS üzerinde iletki testleri runnning tavsiye etmem
// CSS Selector for the element housing the angular app - this defaults to 
    // body, but is necessary if ng-app is on a descendant of <body>. 
    rootElement: 'body', 

, gerçek tarayıcılarından gerçekten farklı çalışır ve bazen gerçek hata atlayabilir veya phantomJS özgü bir şey bulabilir.

+0

teşekkürler @ Xotabu4, o zaman ne önereceksiniz? –

+0

Kullanıcılarınızın çoğunda varsa chrome veya firefox kullanın. – Xotabu4