2014-10-16 43 views
7

Tôi đang sử dụng thước đo 1.3.1 và chạy iedriverserver.exe 2.43.0.0 với cài đặt IE11 (cửa sổ). Đây là spec của tôi:với thước đo cách thiết lập cấu hình internet explorer?

describe('quick test IE driver', function() { 
    it('should go to ng homepage', function() { 
     browser.driver.get('https://angularjs.org/'); 
     var title =element(by.css('h1')).getText(); 
     expect(title).toBe('HTML enhanced for web apps!'); 
    }); 
}); 

Và đây là protractor.conf.js tôi:

exports.config = { 
    // The address of a running selenium server. 
    //seleniumAddress: 'http://localhost:4444/wd/hub', 

    capabilities: { 
     'browserName': 'internet explorer', 
     'platform': 'ANY', 
     'version': '11' 
    }, 


    // Spec patterns are relative to the current working directly when 
    // protractor is called. 
    specs: ['main.spec.js'], 

    // Options to be passed to Jasmine-node. 
    jasmineNodeOpts: { 
     showColors: true, 
     defaultTimeoutInterval: 30000, 
     isVerbose:true, 
     includeStackTrace:true 

    } 
}; 

nhận được lỗi này mặc dù, bất kỳ ý tưởng cho một giải pháp:

UnknownError: The path to the driver executable must be set by the webdriver.ie.driver system property; 

Trả lời

4

Tải IEDriverServer.exe Vui lòng ghi rõ trong tệp cấu hình của bạn

seleniumArgs: ['-Dwebdriver.ie.driver=<path to IEDriverServer.exe>'] 
+0

[Theo nguyên tắc cấu hình thước đo góc, giá trị cấu hình "seleniumArgs" không được chấp nhận.] (Https://github.com/angular/protractor/blob/master/lib/config.ts#L45) –

3

tôi đang tìm kiếm xung quanh câu hỏi này cho vài giờ, cách tốt nhất có vẻ là:

1) tải webdriver-manager --ie cập nhật

này nên tải về trình điều khiển từ google .. selenium ... phát hành thư mục và đặt nó trực tiếp ở vị trí tốt trong kho lưu trữ cục bộ npm của bạn.

2) thiết lập trong file config.js của các bài kiểm tra của bạn: ...

multiCapabilities: [ 
    //{ 
    // browserName: 'chrome', 
    // version: 'ANY' 
    //}, 
    //{ 
    // browserName: 'firefox', 
    // version: 'ANY' 
    //}, 
    { 
     browserName: 'internet explorer', 
     version: 'ANY' 
    }, 
], 
// For some IE functions you may need to specify defaultTimeoutInterval 

... 3) thiết lập IE:

làm theo bài này http://jimevansmusic.blogspot.fr/2012/08/youre-doing-it-wrong-protected-mode-and.html

PS : về thiết lập "chế độ được bảo vệ" của IE, điều quan trọng là phải có cùng một thiết lập cho tất cả các vùng. Tôi thích có chế độ bảo vệ 'bật' cho tất cả các khu

4) vá registry

như đã mô tả ở đây: http://heliumhq.com/docs/internet_explorer

[HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Internet Explorer \ CHỦ \ FeatureControl \ FEATURE_BFCACHE] "iexplore.exe" = dword: 00000000

5) IE 11 cập nhật phá vỡ đường hệ thống hoạt động:

vấn đề mới nhất của tôi là "máy chủ đã không cung cấp bất kỳ vết đống. ... "điều này là do một bản cập nhật của ngày 17 tháng 12 năm 2014. Gỡ cài đặt nó và sau đó nó là tốt.

https://code.google.com/p/selenium/issues/detail?id=3390

đường dẫn điên để làm cho nó chạy. Nó không thể được như thế này trong một thời gian dài, xin vui lòng bình luận bài viết của tôi với kinh nghiệm của bạn/phản hồi.

Richard

+1

Tôi chỉ muốn để thêm một bản cập nhật nhỏ mà họ đã thêm một tùy chọn --ie32 sẽ cài đặt trình điều khiển 32 bit. Trình điều khiển 64 bit bị hỏng khá nhiều do sendKeys() mất vài giây cho mỗi lần nhấn phím. Xin lưu ý rằng bạn cũng phải thêm chuyển đổi --ie32 vào lệnh bắt đầu. –

10

quản lý web Cập nhật cho IE

Bước đầu tiên là để cập nhật tức webdriver sử dụng quản lý webdriver.Mở cửa sổ lệnh và chạy các lệnh đưa ra dưới đây

webdriver-manager update --ie 

Đến vị trí NPM Trong bước này, di chuyển đến NPM_LOCATION (thư mục mà NPM được cài đặt tại hệ thống của bạn. Di chuyển đến đường dẫn sau "NPM_LOCATION \ node_modules \ protractor \ selen "Lúc kiểm tra vị trí này mà IEDriverServer.exe hiện diện hay không.

Thay đổi cho IE trong conf.js

// conf.js exports.config = { seleniumAddress: 'http://localhost:4444/wd/hub', specs: ['specs.js'], capabilities: { 
    'browserName': 'internet explorer' // conf for internet explorer  } } 


// spec.js describe('Protractor Demo App', function() { it('should have a title', function() { 
    browser.get('http://juliemr.github.io/protractor-demo/'); 
    expect(browser.getTitle()).toEqual('Super Calculator'); }); }); 

Bây giờ chạy conf.js thước đo

Lưu ý: Hãy chắc chắn rằng bạn khởi động lại máy chủ bằng cách -> webdriver-manager bắt đầu

lấy từ: http://protractorsupport.blogspot.com/2015/05/use-protractor-with-internet-explorer.html

+0

nếu 'webdriver-manager' không nằm trong đường dẫn toàn cầu, tôi đoán tôi cần phải cài đặt thông qua npm? với '-g'? – Erik

+0

@Erik bạn nói đúng. – Innovation

5

Theo the protractor config doc, giá trị cấu hình "seleniumArgs" bị phản.

Vì vậy, để có một câu trả lời duy nhất với tất cả các thông tin, đây là các bước đơn giản:

  1. Install Protactor toàn cầu:

    npm install -g protractor 
    
  2. Run webdriver-manager update --ie để cập nhật các trình điều khiển Selenium rằng Protactor sử dụng. Hãy lưu ý nếu bạn đang chạy toàn cầuwebdriver-manager hoặc địa phươngwebdriver-manager (ví dụ: ./node_modules./bin/webdriver-manager update help); họ sẽ giải nén các trình điều khiển tại các vị trí riêng biệt; chỉ địa phương sẽ giải nén trong [Project dir]

  3. Hãy xem nhật ký của lệnh trước đó. Nó phải cho thấy rằng các trình điều khiển đã được giải nén tại một thư mục cụ thể. Đi đến thư mục đó và định vị IEDriverServer. Trong trường hợp của tôi là: "[Project dir]\node_modules\protractor\node_modules\webdriver-manager\selenium\IEDriverServer_x64_X.XX.X.exe. Bạn sẽ cần cung cấp đường dẫn tương đối cho tệp này trong bước tiếp theo.

  4. Bên trong tệp conf.js của bạn, thêm các khóa sau & giá trị. Lưu ý việc sử dụng localSeleniumStandaloneOpts, có nghĩa là bạn nên loại bỏ tài sản seleniumAddress if you have it:

    multiCapabilities : [ 
        { 
        'browserName' : 'chrome' 
        }, { 
        'browserName' : 'internet explorer' 
        } 
    ], 
    
    localSeleniumStandaloneOpts : { 
        jvmArgs : ["-Dwebdriver.ie.driver=<RELATIVE PATH TO IE DRIVER>"] // e.g: "node_modules/protractor/node_modules/webdriver-manager/selenium/IEDriverServer_x64_X.XX.X.exe" 
    }, 
    

Đó là tất cả những gì cần phải làm. Tôi không khởi động máy chủ trước, tôi chỉ cần chạy protactor conf.js. Bây giờ dễ hơn, tôi đoán vậy.

+0

Cảm ơn bạn - đây là câu trả lời chính xác ngay bây giờ để chạy 'ra khỏi hộp' chống lại IE mà không thiết lập một cá thể selenium/web-driver riêng biệt, các câu trả lời ở trên không hoạt động cho trường hợp sử dụng đó. –

Các vấn đề liên quan