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 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 exception như thế này: “The path to the driver executable must be set by webdriver.ie.driver system property…”

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. Để khởi tạo được trình duyệt IE lên 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 local (Cách này có nhược điểm là chỉ chạy được trên máy đã set)

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.

Issue 02 – Reset tất cả setting của IE về default

Để chắc chắn rằng trình duyệt IE ko có bất kì cấu hình từ người dùng nào, nên reset tất cả các setting của IE về default

  • Mở trình duyệt IE
  • Chọn Tools -> Internet Options -> Advanced tab
  • Chọn vào checkbox: Delete personal settings
  • Click Reset button > Click Close button

Issue 03 – Protected mode (setting Issue 02 trước)

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 ý: 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 04 – 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 05 – Sleep cứng sau các action

  • Một lỗi hay gặp nữa là khi chạy kịch bản test trên Chrome/Firefox thì work nhưng chạy trên IE ko find được element, vấn đề là khi chạy trên IE các action như click/ chuyển page/ search nên sleep cứng ít nhất là 5s
  • Nhưng làm sao để detect được chỉ sleep cho riêng trình duyệt IE mà ko affect tới các browser khác, có thể áp dụng cách sau (Ví dụ cho hàm click dưới đây)
public void clickToElement(String locator) {
WebElement element = driver.findElement(By.xpath(locator));
element.click();
if (driver.toString().toLowerCase().contains("internet explorer")) {
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public void TC_01() {
driver.get("http://live.guru99.com");
clickToElement("//div[@class='footer']//a[text()='My Account']");
// To do
}

Issue 06 – 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 07 – 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 phần setting capability của IE trước khi init browser:

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é.