Selenium Tiện ích mở rộng cốt lõi (User-Extensions.js)
⚡ Tóm tắt thông minh
Selenium Các phần mở rộng cốt lõi, còn được gọi là phần mở rộng người dùng, bổ sung các hành động, trình truy cập và chiến lược định vị tùy chỉnh cho Selenium IDE bằng cách đính kèm JavaCác hàm kịch bản cho Selenium và các đối tượng nguyên mẫu PageBot khi IDE khởi động.
Selenium Tiện ích mở rộng cốt lõi
Để hiểu về phần mở rộng, trước tiên chúng ta hãy tìm hiểu ba trụ cột của nó. Selenium IDEMỗi lệnh bạn ghi lại hoặc nhập vào IDE đều thuộc một trong ba loại dưới đây, và mỗi ảnh chụp màn hình cho thấy loại lệnh đó xuất hiện như thế nào trong danh sách lệnh của IDE.
- Hoạt động: Bạn đang thực hiện thao tác gì trên màn hình giao diện người dùng?
- Bộ truy cập / Khẳng định: Bạn thực hiện xác minh nào đối với dữ liệu nhận được từ giao diện người dùng?
- Chiến lược định vị: Cách bạn tìm thấy phần tử đó trong giao diện người dùng.
Selenium IDE được tích hợp sẵn một thư viện hoàn thiện, đã bao gồm rất nhiều thao tác, phương thức truy cập, xác nhận và chiến lược định vị.
Tuy nhiên, đôi khi một dự án cần chức năng không có trong thư viện đó. Trong trường hợp đó, bạn có thể mở rộng thư viện bằng cách thêm phần mở rộng tùy chỉnh của riêng mình. Các phần mở rộng tùy chỉnh này được gọi là tiện ích mở rộng tùy chỉnh (custom extensions). tiện ích mở rộng người dùng.
Ví dụ, giả sử bạn cần một thao tác chuyển đổi văn bản thành chữ in hoa trước khi điền vào một phần tử web. Không có thao tác nào như vậy trong thư viện mặc định, vì vậy bạn cần tạo tiện ích mở rộng của riêng mình. Trong hướng dẫn này, bạn sẽ học cách xây dựng một tiện ích mở rộng người dùng để chuyển đổi văn bản thành chữ in hoa.
⚠️ Trước khi bắt đầu: Quy trình làm việc được mô tả ở đây thuộc về Selenium Cốt lõi và bản gốc Firefox-cắm vào Selenium IDE. Selenium Nhân hệ điều hành cốt lõi đã bị loại bỏ và tính năng hỗ trợ tiện ích mở rộng của người dùng cũng đã bị ngừng cung cấp. Selenium lọ trong Selenium 3. Các bước và đoạn mã bên dưới được giữ nguyên vì một số lượng lớn các bộ ứng dụng Selenese cũ vẫn phụ thuộc vào chúng; phương pháp thay thế hiện đại sẽ được mô tả sau trong bài viết này.
Yêu cầu tạo ra một 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 Bạn cần nắm vững các khái niệm cơ bản về IDE. JavaScript và đặc biệt, JavaĐối tượng nguyên mẫu kịch bản. Sơ đồ bên dưới hiển thị hai đối tượng nguyên mẫu mà tiện ích mở rộng của người dùng gắn vào.
Để tạo tiện ích mở rộng người dùng của bạn, bạn viết JavaViết các phương thức kịch bản và thêm chúng vào. Selenium nguyên mẫu đối tượng và nguyên mẫu đối tượng PageBot.
Làm thế nào Selenium IDE nhận diện tiện ích mở rộng của người dùng
Sau khi tiện ích mở rộng người dùng được thêm vào Selenium IDE và khi IDE được khởi động, mọi chức năng được đăng ký trên đó đều được ghi lại. JavaCác nguyên mẫu kịch bản đã được tải và Selenium IDE nhận diện từng lệnh bằng tên của nó. Đó là lý do tại sao các tiền tố đặt tên trong phần tiếp theo không phải là lựa chọn về kiểu dáng — mà là cách IDE phân loại lệnh của bạn.
Cách tạo tiện ích mở rộng người dùng
Bước 1) Hành động – mọi hành động đều bắt đầu bằng doNếu thao tác chuyển đổi văn bản thành chữ hoa, tên của nó là... doTextUpperCaseKhi bạn thêm phương thức hành động này vào Selenium IDE tự nó tạo ra một phương thức chờ tương ứng, vì vậy doTextUpperCase cũng tạo ra hàm chờ textUpperCaseAndWaitPhương pháp này 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) Bộ truy cập / Khẳng định – tất cả các thiết bị truy cập đã đăng ký trên Selenium Nguyên mẫu đối tượng được đặt tiền tố bởi được or isVí dụ như getValueFromCompoundTable hoặc isValueFromCompoundTable. Một phương thức truy cập 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 kiểm thử. Ảnh chụp màn hình bên dưới cho thấy các tiền tố đó xuất hiện như thế nào sau khi phần mở rộng được tải.
Đối với mỗi phụ kiện, Selenium IDE tạo ra các hàm xác minh tương ứng có tiền tố là xác minh và khẳng định, cộng thêm một hàm chờ có tiền tố là chờ đợi.
Ví dụ: Đối với trình truy cập 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 bạn muốn tạo hàm riêng để định vị một phần tử, hãy mở rộng nguyên mẫu PageBot với một hàm có tiền tố là locateElementByHàm này nhận hai tham số: chuỗi định vị và tài liệu mà trong đó cần tìm kiếm phần tử.
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ưu cả ba hàm vào một tệp duy nhất có tên là... user-extensions.jsTệp tin này đơn giản. JavaĐây là dạng kịch bản, vì vậy bất kỳ trình soạn thảo văn bản nào cũng đều phù hợp.
Hướng dẫn sử dụng tiện ích mở rộng Core mới được tạo
Việc tải tập tin là một quy trình gồm bốn bước trong phiên bản gốc. Firefox-plugin IDE. Mỗi ảnh chụp màn hình bên dưới tương ứng với bước được đánh số bên cạnh.
- Đến phần Selenium IDE và nhấp chuột Tùy chọn -> Tùy chọn…
- Trong tạp chí Tổng quan trong phần này, chọn vị trí của mục vừa tạo. Selenium Phần mở rộng cốt lõi.
- Nhấp chuột OK và khởi động lại Selenium SDI.
- Bạn sẽ tìm thấy phần mở rộng trong danh sách lệnh.
Selenium Các phần mở rộng cốt lõi so với Selenium Tiện ích mở rộng IDE
Hai thuật ngữ này được sử dụng thay thế cho nhau trong các tài liệu cũ hơn, nhưng chúng mô tả các lớp khác nhau, và sự khác biệt này rất quan trọng khi bạn quyết định đặt logic tùy chỉnh ở đâu.
| Yếu tố | Selenium Phần mở rộng cốt lõi | Selenium Tiện ích mở rộng IDE |
|---|---|---|
| Những gì nó mở rộng | Thư viện lệnh Selenese được sử dụng trong quá trình phát lại. | Chính ứng dụng IDE đó |
| Tệp đã được tải | user-extensions.js | user-extensions-ide.js trong IDE cũ, một tệp kê khai plugin trong IDE hiện tại. |
| Sử dụng điển hình | Các hành động, truy cập và chiến lược định vị mới | Các mục menu, bảng điều khiển, định dạng và hành vi của trình ghi mới |
| Các vật thể được chạm vào | Selenium.prototype và PageBot.prototype | API trình soạn thảo và ghi của IDE |
| Chạy trong | Thực hiện kiểm tra | Soạn thảo và ghi âm |
Nói tóm lại, một tiện ích mở rộng Core thay đổi những gì một bài kiểm tra có thể làm, trong khi một tiện ích mở rộng IDE thay đổi những gì công cụ đó có thể làm.
Cách thức hiện đại Selenium IDE thay thế user-extensions.js
Firefox-cắm vào Selenium IDE ngừng hoạt động khi Firefox Đã chuyển sang kiến trúc WebExtensions, và môi trường phát triển tích hợp (IDE) được viết lại thành Chrome. Firefox và tiện ích mở rộng trình duyệt Edge. Việc viết lại đó đã loại bỏ trường Tùy chọn được hiển thị ở trên, vì vậy không có chỗ nào để trỏ đến tệp user-extensions.js. Hai phương án thay thế được hỗ trợ đều bao quát cùng một vấn đề.
- Lệnh thực thi tập lệnh. Chỉ áp dụng một lần JavaTập lệnh, thêm một thực thi kịch bản or thực thi tập lệnh bất đồng bộ Thực hiện trực tiếp bước kiểm thử và lưu kết quả vào một biến. Đây là cách gần nhất để thực hiện một hành động tùy chỉnh nhỏ.
- Một plugin. Để sử dụng lại các lệnh, hãy xây dựng một tiện ích mở rộng trình duyệt đăng ký tệp kê khai với IDE. Tệp kê khai này khai báo mỗi lệnh mới với một ID, tên, kiểu dữ liệu tùy chọn và tài liệu hướng dẫn, đồng thời cũng có thể khai báo các bộ định vị mới.
Tệp kê khai được đăng ký bằng cách gửi một thông báo đến tiện ích mở rộng IDE, như được hiển thị trong tài liệu chính thức. Selenium Tài liệu plugin IDE.
browser.runtime.sendMessage(SIDE_ID, {
uri: "/register",
verb: "post",
payload: {
name: "Selenium IDE plugin",
version: "1.0.0",
commands: [
{ id: "textUpperCase", name: "text upper case" }
]
}
}).catch(console.error);
Nguyên tắc đặt tên vẫn được duy trì sau quá trình chuyển đổi: một lệnh plugin vẫn được khai báo một lần và sau đó được sử dụng lại trong mọi bài kiểm tra, giống hệt như một tiện ích mở rộng của Core.
Các tiện ích mở rộng và plugin phổ biến được sử dụng trong Selenium IDE
Các tiện ích bổ sung bên dưới là những tiện ích được sử dụng rộng rãi nhất trong IDE cũ. Một số trong số chúng, chẳng hạn như điều khiển luồng và chụp ảnh màn hình khi xảy ra lỗi, hiện đã được tích hợp vào IDE hiện tại hoặc có sẵn dưới dạng các plugin được duy trì.
| Họ tên | Mục đích |
|---|---|
| Yêu thích | Đánh dấu bộ kiểm thử yêu thích và thực thi nó chỉ với 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 thử nghiệm 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ờ đợi 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 |
Các cũ SeleniumTrang tải xuống của HQ chứa các tập tin này hiện không còn tồn tại. Các plugin hiện tại và IDE được phân phối từ... Selenium Trang web dự án IDE và từ Chrome, Firefox và các cửa hàng tiện ích bổ sung của Edge.
Tải về Selenium Phần mở rộng cốt lõi được sử dụng trong Hướng dẫn này









