Trình Đối Sánh Tùy Chỉnh
WebdriverIO sử dụng thư viện khẳng định expect
theo phong cách Jest, đi kèm với các tính năng đặc biệt và trình đối sánh tùy chỉnh dành riêng cho việc chạy các bài kiểm thử web và di động. Mặc dù thư viện trình đối sánh rất lớn, nhưng chắc chắn không phù hợp với mọi tình huống có thể xảy ra. Do đó, có thể mở rộng các trình đối sánh hiện có với các trình đối sánh tùy chỉnh do bạn xác định.
Mặc dù hiện tại không có sự khác biệt về cách định nghĩa các trình đối sánh dành riêng cho đối tượng browser
hoặc thể hiện element, điều này chắc chắn có thể thay đổi trong tương lai. Hãy theo dõi webdriverio/expect-webdriverio#1408
để biết thêm thông tin về sự phát triển này.
Trình Đối Sánh Trình Duyệt Tùy Chỉnh
Để đăng ký trình đối sánh trình duyệt tùy chỉnh, hãy gọi extend
trên đối tượng expect
trực tiếp trong tệp spec của bạn hoặc như một phần của ví dụ hook before
trong wdio.conf.js
:
loading...
Như hiển thị trong ví dụ, hàm đối sánh lấy đối tượng mong đợi, ví dụ: đối tượng trình duyệt hoặc phần tử, làm tham số đầu tiên và giá trị mong đợi làm tham số thứ hai. Sau đó, bạn có thể sử dụng trình đối sánh như sau:
loading...
Trình Đối Sánh Phần Tử Tùy Chỉnh
Tương tự như trình đối sánh trình duyệt tùy chỉnh, trình đối sánh phần tử không khác nhau. Dưới đây là ví dụ về cách tạo trình đối sánh tùy chỉnh để xác nhận aria-label của một phần tử:
loading...
Điều này cho phép bạn gọi khẳng định như sau:
loading...
Hỗ Trợ TypeScript
Nếu bạn đang sử dụng TypeScript, cần thêm một bước nữa để đảm bảo an toàn kiểu cho các trình đối sánh tùy chỉnh của bạn. Bằng cách mở rộng giao diện Matcher
với các trình đối sánh tùy chỉnh của bạn, tất cả các vấn đề về kiểu đều biến mất:
loading...
Nếu bạn đã tạo một trình đối sánh bất đối xứng tùy chỉnh, bạn có thể mở rộng các kiểu expect
tương tự như sau:
declare global {
namespace ExpectWebdriverIO {
interface AsymmetricMatchers {
myCustomMatcher(value: string): ExpectWebdriverIO.PartialMatcher;
}
}
}