[Java – Webdriver 12] – Các vấn đề khi chạy kịch bản Selenium với trình duyệt IE
Sau một khoảng thời gian trải nghiệm vài dự án automation trên trình duyệt IE thì bản thân mình thấy cũng khá ngán ngẩm với trình duyệt này. Việc chạy chậm, không tương thích/ không tuân thủ theo các chuẩn Web đã khiến IE trở thành ‘trình duyệt bị thù ghét’ từ developer tới tester (Các bạn xem rõ hơn trong bài viết này: Tại sao giới lập trình thù ghét Internet Explorer)
Có khá nhiều bạn khi mới bắt đầu làm việc với IE thì không chạy được kịch bản hoặc gặp phải/ hỏi những vấn đề tương tự nhau. Trong phạm vi bài viết mình sẽ giới thiệu cách chạy kịch bản Selenium trên trình duyệt IE và cách xử lí những khó khăn thường gặp với trình duyệt này.
Issue 01 – Set path cho IE driver
Các bạn hãy xem vấn đề gì sẽ xảy ra nếu chúng ta khởi tạo driver của trình duyệt IE và chạy kịch bản tương tự như Firefox trong hình dưới đây:
Chúng ta sẽ nhận được 1 lỗi với exception như thế này sau khi chạy:
Lỗi này xảy ra khi chúng ta chưa tham chiếu tới IEDriverServer trên máy tính cục bộ hoặc chưa thiết lập đường dẫn biến môi trường cho trình duyệt IE. Để chạy được kịch bản trên trình duyệt IE có 2 cách:
- Cách 1: Set System Property cho trình duyệt IE trong kịch bản
Tạo 1 thư mục trên ổ đĩa và lưu trữ IEDriverServer (như hình dưới mình lưu tại ổ đĩa E/ thư mục Driver), nếu chưa có IEDriverServer thì tải ở link sau: IEDriverServer. Sau đó cấu hình trong kịch bản:
- Cách 2: Set đường dẫn biến môi trường cho trình duyệt IE trên máy tính cục bộ
Cách làm tương tự như thiết lập biến môi trường cho Java (xem kĩ hơn trong bài viết này: Thiết lập biến môi trường cho Java)
Sau khi thiếp lập xong thì các bạn có thể chạy được kịch bản trên trình duyệt IE mà không cần phải Set System Property trong kịch bản. Nếu chạy vẫn báo lỗi như trên thì khởi động máy rồi chạy lại nhé.
Issue 02 – Protected mode
Lỗi trên xảy ra khi chúng ta không thiết lập chế độ bảo vệ trên trình duyệt IE là như nhau. Để loại bỏ lỗi này chúng ta thực hiện theo các bước sau:
- Mở trình duyệt IE
- Chọn Tools -> Internet Options -> Security tab
- Chúng ta sẽ thấy 4 zones là: Internet/ Local intranet/ Trusted sites/ Restricted sites.
- Phía dưới có 1 checkbox là: Enable Protected Mode. Các bạn cần check hoặc uncheck vào checkbox này cả 4 zones
- Lưu ý: hoặc check hay uncheck nhưng phải áp dụng cho cả 4 zones
Chọn xong chúng ta khởi động lại trình duyệt IE và chạy lại kịch bản, lỗi này sẽ không còn xuất hiện.
Issue 03 – Sendkey chậm
Một lỗi thường hay gặp đó là sử dụng IEDriverServer phiên bản 64bit, sử dụng phiên bản này khi nhập dữ liệu rất là chậm, thường từ 2-3s cho 1 kí tự. Để khắc phục điều này chỉ cần tải về thay thế phiên bản IEDriverServer 64bit bằng bản 32bit, cho dù hệ điều hành của bạn là 64bit vẫn sử dụng được.
Issue 04 – Zoom level
Lỗi này xảy ra khi trình duyệt IE của bạn được zoom in/ out quá mức. Để sửa lỗi này chỉ cần thiết lập lại zoom của trình duyệt bằng 100%.
Issue 05 – SSL certificate error
Lỗi này xảy ra khi site được mở chưa được chứng thực SSL. Lỗi này nhiều khi nó chỉ xuất hiện trên IE, còn Chrome/ Firefox đôi khi không xuất hiện. Để xử lí vấn đề này chúng ta thiết lập cho accept các chứng chỉ SSL trong đối tượng Capability:
Hi vọng khi xử lí được các issue trên các bạn sẽ làm việc tốt hơn để chạy kịch bản trên trình duyệt IE. Nếu có 1 vấn đề mới hoặc cách giải quyết hay hơn các bạn vui lòng chia sẻ và comment vào trong bài viết nhé.