2014-11-27 19 views
19

Tôi đang cố gắng chọn một công cụ để kiểm tra tự động hóa Javascript.Sự khác biệt giữa webdriverjs và webdriverio

Cho đến bây giờ tôi đã sử dụng Selenium WebDriver trong Java với TestNG để xây dựng các bài kiểm tra của tôi, nhưng tôi đã được yêu cầu tìm kiếm giải pháp JavaScript để viết các bài kiểm tra.

Tất nhiên điều đầu tiên trong đầu tôi là di chuyển đến WebDriverJs - nó phải tương tự như các bài kiểm tra Java của tôi.

Nhưng, tôi cũng tìm thấy một khuôn khổ khác: WebdriverIO. Tôi không thể tìm thấy bất cứ điều gì có thể được thực hiện với WebdriverIO đó là không thể với WebDriverJs.

Hãy giúp tôi hiểu sự khác biệt để tôi có thể chọn đúng khung cho tôi.

+2

Vui lòng viết hoa Java và JavaScript đúng cách - chúng không phải là từ viết tắt :) –

Trả lời

23

"WebdriverJS" là một tên khác cho selenium-webdriver, việc thực hiện Node.JS chính thức của nhóm JSONWire (WebDriver Wire) Protocol bởi nhóm Selenium.

"WebdriverIO" là triển khai độc lập Giao thức dây JSON theo Christian Bromann (SO profile), người làm việc tại Phòng thí nghiệm Sauce, nhà cung cấp thử nghiệm trên nhiều trình duyệt trên nền tảng đám mây. WebdriverIO kết thúc tốt đẹp các yêu cầu cấp dưới của mình vào các lệnh hữu ích, với một cú pháp ngắn gọn:

client 
    .url('http://google.com') 
    .setValue('#q','webdriver') 
    .click('#btnG') 

Các thử nghiệm tương tự với selen-webdriver là phức tạp hơn:

driver.get('http://www.google.com'); 
driver.findElement(webdriver.By.id('q')).sendKeys('webdriver'); 
driver.findElement(webdriver.By.id('btnG')).click(); 

Có ít nhất seven Webdriver clients written in Node.JS.

3

WebdriverJS thực sự là những gì WebdriverIO gói cùng với một nhân viên thử nghiệm ở định dạng gói nút. Không thực sự bất cứ điều gì không thể thực hiện với WebdriverJS mà WebdriverIO sẽ làm. Bạn cũng có thể sử dụng WebdriverJS cùng với Jasmine hoặc Mocha.

Tất nhiên, trình bao bọc trong WebdriverJS và WebdriverIO được gắn nhãn khác nhau nhưng điều đó không thay đổi cách chúng triển khai giao thức WIRE của trình duyệt Webdriver.

Nếu bạn đang thử nghiệm các ứng dụng dựa trên AngularJS, có một triển khai sắp xếp hợp lý hơn về giao thức WebDriver WIRE trong Thước đo góc (được phân phối lại dưới dạng gói nút).

+2

Không hoàn toàn. Thước đo góc thực sự sử dụng WebDriverJs, đó là những gì thực hiện giao thức dây, trong khi WebdriverIO thực hiện giao thức dây một cách độc lập. – titusfortner

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