Issue

  • Hầu hết các bạn mới học/ làm quen vs automation testing thì các lỗi liên quan đến môi trường/ config/ version không tự xử lí được – đặc biệt là sự không tương thích giữa các version
    • Java version
      • 1.7.xx
      • 1.8.xx
      • 1.9.xx
    • Browser version
      • Chrome
      • Firefox
      • IE
      • Safari
    • Selenium version
      • 2.xx
      • 3.xx
      • 4.xx
    • Browser driver version
      • chromedriver
      • geckodriver
      • iedriver

Giải pháp

  • Trước khi các bạn nắm được tips để manage các version này thì mình recommend nên có 1 môi trường ổn định để thực hành/ học tốt nhất – tránh mất thời gian ngồi xử lí mấy issue vớ vẩn
    • Recommend 01:
      • Java version: 1.8.xx
      • Browser version:
        • Chrome: latest
        • Firefox: 47.0.2
        • IE: 11
      • Selenium version:
        • 2.53.1 (Stable)
      • Browser driver version:
        • chromedriver: latest
        • geckodriver: ko cần cho bản firefox <=47
        • iedriver: bám theo version của Selenium server (như trên là 2.53.1)
    • Recommend 02:
      • Java version: 1.8.xx
      • Browser version:
        • Chrome: latest
        • Firefox: latest
        • IE: 11
      • Selenium version:
        • 3.xx (Bản 3. trở lên là được)
      • Browser driver version:
        • chromedriver: latest
        • geckodriver: bám theo version của Firefox
        • iedriver: bám theo version của Selenium server
    • Như trên thì các bạn thấy vấn đề không tương thích lớn nhất là Firefox, có 1 sự thay đổi nhỏ từ version Firefo 48 trở lên – các bạn follow như sau:
      • Firefox <=47:
        • Sử dụng vs Selenium 2.xx – không work vs 3.xx
        • Không cần sử dụng geckodriver
        • Chỉ cần new instance của FirefoxDriver là có thể sử dụng ngay
      • Firefox >=48:
        • Phải sử dụng vs Selenium 3.xx trở lên – không work vs 2.xx
        • Phải set property cho geckodriver
          • System.setProperty(“webdriver.geckodriver.driver”, “//path_of_gecko_driver”);
      • Về version tương thích giữa Selenium/ Firefox/ GeckoDriver xem chi tiết trong hình dưới

Code Sample

  • Chrome
    • System.setProperty(“webdriver.chrome.driver”, “.\\lib\\chromedriver.exe”);
    • driver = new ChromeDriver();
    • Lưu ý: “.\\lib\\chromedriver.exe” => đường dẫn tương đối tới file chromedriver.exe nằm trong thư mục lib
  • Firefox (<=47)
    • driver = new FirefoxDriver();
  • Firefox (>=48)
    • System.setProperty(“webdriver.gecko.driver”, “.\\lib\\geckodriver.exe”);
    • driver = new FirefoxDriver();
    • “.\\lib\\geckodriver.exe” => đường dẫn tương đối tới file geckodriver.exe nằm trong thư mục lib
  • Internet Explorer
    • System.setProperty(“webdriver.ie.driver”, “.\\lib\\IEDriverServer.exe”);
    • driver = new InternetExplorerDriver();
    • “.\\lib\\IEDriverServer.exe” => đường dẫn tương đối tới file IEDriverServer.exe nằm trong thư mục lib