Selenium Tiện ích mở rộng cốt lõi (User-Extensions.js)
Để hiểu các tiện ích mở rộng, trước tiên hãy hiểu ba trụ cột của Selenium IDE
- Hành động: Bạn đang thực hiện thao tác nào trên Màn hình giao diện người dùng
- Người đánh giá/Khẳng định: Bạn thực hiện xác minh gì đối với dữ liệu bạn nhận được từ UI
- Chiến lược định vị: Làm cách nào chúng ta có thể tìm thấy phần tử trong giao diện người dùng.
Bây giờ, Selenium IDE có một thư viện rất hoàn thiện với nhiều Hành động, Xác nhận/Người đánh giá và Chiến lược định vị.
Nhưng đôi khi chúng tôi cần thêm một số chức năng nữa cho yêu cầu dự án của mình. Trong tình huống đó, chúng tôi có thể mở rộng thư viện này bằng cách thêm các tiện ích mở rộng tùy chỉnh của mình. Các tiện ích mở rộng tùy chỉnh này được gọi là 'Tiện ích mở rộng người dùng'.
Ví dụ: chúng ta cần một Hành động có thể chuyển đổi văn bản thành chữ hoa trước khi điền nó vào thành phần web. Bạn không thể tìm thấy Hành động này trong thư viện Hành động mặc định. Trong trường hợp đó, bạn có thể tạo 'Tiện ích mở rộng người dùng' của riêng mình. Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách tạo tiện ích mở rộng người dùng để chuyển Văn bản sang Chữ hoa
Yêu cầu tạo Selenium tiện ích mở rộng người dùng
Để tạo tiện ích mở rộng người dùng cho Selenium IDE, chúng ta cần biết khái niệm cơ bản về JavaScript và Java Khái niệm đối tượng nguyên mẫu kịch bản.
Để tạo tiện ích mở rộng người dùng, bạn cần tạo Java phương thức script và thêm chúng vào nguyên mẫu đối tượng selenium và nguyên mẫu đối tượng PageBot.
Làm thế nào Selenium IDE có nhận ra Tiện ích mở rộng của người dùng không?
Sau khi thêm Tiện ích mở rộng người dùng vào Selenium IDE khi chúng tôi bắt đầu Selenium IDE, tất cả các tiện ích mở rộng này trong nguyên mẫu javascript đều được tải và Selenium IDE nhận ra chúng theo tên của chúng.
Cách tạo tiện ích mở rộng người dùng
Bước 1) Hành động– tất cả các hành động đều được bắt đầu bằng “do”, tức là nếu hành động đó dành cho văn bản viết hoa thì tên của nó sẽ là doTextUpperCase. Khi chúng tôi thêm phương thức hành động này vào Selenium SDI, Selenium IDE sẽ tự tạo một phương thức chờ cho hành động này. Vì vậy, trong trường hợp này khi chúng ta tạo doTextUpperCase hoạt động, Selenium IDE sẽ tạo hàm chờ tương ứng như TextUpperCaseAndWait. Nó có thể chấp nhận hai tham số
Ví dụ: Hành động văn bản viết hoa
Selenium.prototype.doTextUpperCase = function(locator, text) { // Here findElement is itself capable to handle all type of locator(xpath,css,name,id,className), We just need to pass the locator text var element = this.page().findElement(locator); // Create the text to type text = text.toUpperCase(); // Replace the element text with the new text this.page().replaceText(element, text); };
Bước 2) Người đánh giá/Khẳng định- Tất cả người đánh giá đã đăng ký trong nguyên mẫu đối tượng selen sẽ có tiền tố
bởi “get” hoặc “is” Ex. getValueFromCompoundTable , isValueFromCompoundTable .Nó có thể chấp nhận hai tham số, một cho mục tiêu và một cho trường giá trị trong trường hợp thử nghiệm.
Đối với mỗi Người đánh giá, sẽ có các chức năng xác minh tương ứng được bắt đầu bằng “verify”, “assert” và tiền tố chức năng chờ là “waitFor”
Ví dụ: Dành cho người đánh giá Văn bản viết hoa
Selenium.prototype.assertTextUpperCase = function(locator, text) { // All locator-strategies are automatically handled by "findElement" var element = this.page().findElement(locator); // Create the text to verify text = text.toUpperCase(); // Get the actual element value var actualValue = element.value; // Make sure the actual value matches the expected Assert.matches(expectedValue, actualValue); }; Selenium.prototype.isTextEqual = function(locator, text) { return this.getText(locator).value===text; }; Selenium.prototype.getTextValue = function(locator, text) { return this.getText(locator).value; };
Bước 3) Chiến lược định vị- Nếu chúng ta muốn tạo hàm riêng để định vị một phần tử thì
chúng ta cần mở rộng nguyên mẫu PageBot bằng một hàm có tiền tố “locateElementBy”.
Nó sẽ có hai tham số, đầu tiên sẽ là chuỗi định vị và thứ hai sẽ là tài liệu
nơi cần tìm kiếm.
Ví dụ: Đối với Trình định vị văn bản chữ hoa
// The "inDocument" is a document you are searching. PageBot.prototype.locateElementByUpperCase = function(text, inDocument) { // Create the text to search for var expectedValue = text.toUpperCase(); // Loop through all elements, looking for ones that have // a value === our expected value var allElements = inDocument.getElementsByTagName("*"); // This star '*' is a kind of regular expression it will go through every element (in HTML DOM every element surely have a tag name like<body>,<a>,<h1>,<table>,<tr>,<td> etc. ). Here our motive is to find an element which matched with the Upper Case text we have passed so we will search it with all elements and when we get match we will have the correct web element. for (var i = 0; i < allElements.length; i++) { var testElement = allElements[i]; if (testElement.innerHTML && testElement.innerHTML === expectedValue) { return testElement; } } return null; };
Làm cách nào để sử dụng tiện ích mở rộng lõi mới được tạo?
- Đến phần Selenium IDE
Nhấp vào Tùy chọn -> Tùy chọn…
- Trong phần General chọn vị trí vừa tạo Selenium Phần mở rộng cốt lõi
- Nhấn OK và khởi động lại Selenium IDE
- Bạn sẽ tìm thấy phần mở rộng trong danh sách lệnh
Dưới đây là danh sách các tiện ích mở rộng/plugin phổ biến được sử dụng trong Selenium IDE
Họ tên | Mục đích |
---|---|
Yêu thích | Để đánh dấu một bộ thử nghiệm là yêu thích và thực hiện chúng chỉ bằng một cú nhấp chuột |
Thí điểm Flex X | Để tự động hóa dựa trên Flex |
FlexMonkium | Để ghi và phát lại dựa trên Adobe Flex Kiểm tra in Selenium IDE |
Ghi nhật ký tệp | Để lưu nhật ký vào một tập tin |
Kiểm soát lưu lượng | Để kiểm soát luồng thực hiện kiểm thử |
Làm nổi bật các yếu tố | Để đánh dấu một điều khiển web |
Chờ đợi ngầm | Để chờ một phần tử trong một khoảng thời gian nhất định |
Ảnh chụp màn hình không thành công | Chụp ảnh màn hình khi thất bại |
Kết quả kiểm tra | Lưu Trường hợp thử nghiệm kết quả cho một bộ thử nghiệm chỉ bằng một cú nhấp chuột |
Bạn có thể nhận được tất cả những thứ này và nhiều hơn nữa từ SeleniumPhần tải xuống của trang web chính thức HQ
http://docs.seleniumhq.org/download/
Tổng kết
- Có ba phần của Selenium Chiến lược IDE, Hành động, Người đánh giá/Khẳng định, Trình định vị.
- Tiện ích mở rộng người dùng được tạo khi Selenium IDE không đáp ứng được yêu cầu hiện tại.
- Để tạo tiện ích mở rộng người dùng, cần phải thêm javascript vào nguyên mẫu đối tượng của Selenium.
- Sau khi tạo tiện ích mở rộng, cần phải thêm nó vào Selenium IDE và khởi động lại IDE.
Tải về Selenium Phần mở rộng cốt lõi được sử dụng trong Hướng dẫn này