Trình Điều Khiển Trình Duyệt
Để chạy tự động hóa dựa trên giao thức WebDriver, bạn cần cài đặt các trình điều khiển trình duyệt có khả năng dịch và thực thi các lệnh tự động hóa trong trình duyệt.
Cài đặt tự động
Với WebdriverIO v8.14 trở lên, bạn không cần phải tải xuống và cài đặt thủ công bất kỳ trình điều khiển trình duyệt nào nữa vì WebdriverIO sẽ xử lý việc này. Tất cả những gì bạn phải làm là chỉ định trình duyệt bạn muốn kiểm thử và WebdriverIO sẽ làm phần còn lại.
Tùy chỉnh mức độ tự động hóa
WebdriverIO có ba cấp độ tự động hóa:
1. Tải xuống và cài đặt trình duyệt sử dụng @puppeteer/browsers.
Nếu bạn chỉ định kết hợp browserName/browserVersion trong cấu hình capabilities, WebdriverIO sẽ tải xuống và cài đặt kết hợp được yêu cầu, bất kể đã có cài đặt hiện có trên máy hay chưa. Nếu bạn bỏ qua browserVersion, WebdriverIO sẽ đầu tiên cố gắng định vị và sử dụng cài đặt hiện có với locate-app, nếu không tìm thấy, nó sẽ tải xuống và cài đặt phiên bản ổn định hiện tại của trình duyệt. Để biết thêm chi tiết về browserVersion, xem tại đây.
Cài đặt trình duyệt tự động không hỗ trợ Microsoft Edge. Hiện tại, chỉ Chrome, Chromium và Firefox được hỗ trợ.
Nếu bạn có cài đặt trình duyệt ở vị trí mà WebdriverIO không thể tự động phát hiện, bạn có thể chỉ định binary của trình duyệt, điều này sẽ vô hiệu hóa việc tải xuống và cài đặt tự động.
{
capabilities: [
{
browserName: 'chrome', // hoặc 'firefox' hoặc 'chromium'
'goog:chromeOptions': { // hoặc 'moz:firefoxOptions' hoặc 'wdio:chromedriverOptions'
binary: '/path/to/chrome'
},
}
]
}
2. Tải xuống và cài đặt trình điều khiển bằng Chromedriver, Edgedriver hoặc Geckodriver.
WebdriverIO sẽ luôn thực hiện việc này, trừ khi binary của trình điều khiển được chỉ định trong cấu hình:
{
capabilities: [
{
browserName: 'chrome', // hoặc 'firefox', 'msedge', 'safari', 'chromium'
'wdio:chromedriverOptions': { // hoặc 'wdio:geckodriverOptions', 'wdio:edgedriverOptions'
binary: '/path/to/chromedriver' // hoặc 'geckodriver', 'msedgedriver'
}
}
]
}
WebdriverIO sẽ không tự động tải xuống trình điều khiển Safari vì nó đã được cài đặt sẵn trên macOS.
Tránh chỉ định binary cho trình duyệt mà không chỉ định binary tương ứng cho trình điều khiển hoặc ngược lại. Nếu chỉ một trong các giá trị binary được chỉ định, WebdriverIO sẽ cố gắng sử dụng hoặc tải xuống trình duyệt/trình điều khiển tương thích với nó. Tuy nhiên, trong một số trường hợp, điều này có thể dẫn đến sự kết hợp không tương thích. Do đó, nên luôn chỉ định cả hai để tránh bất kỳ vấn đề nào do sự không tương thích về phiên bản.
3. Khởi động/dừng trình điều khiển.
Theo mặc định, WebdriverIO sẽ tự động khởi động và dừng trình điều khiển bằng cách sử dụng một cổng không được sử dụng tùy ý. Việc chỉ định bất kỳ cấu hình nào sau đây sẽ vô hiệu hóa tính năng này, điều đó có nghĩa là bạn sẽ cần phải thủ công khởi động và dừng trình điều khiển:
- Bất kỳ giá trị nào cho port.
- Bất kỳ giá trị nào khác với mặc định cho protocol, hostname, path.
- Bất kỳ giá trị nào cho cả user và key.