Nếu các bạn muốn setup môi trường Selenium trên hệ điều hành MAC hoặc Linux thì xem qua 2 bài viết này:
- Cài đặt/ cấu hình Selenium Java và Eclipse (MAC OS)
- Cài đặt/ cấu hình Selenium Java và Eclipse (Ubuntu Linux)
Java Development Kit (JDK)
- Recommend nên dùng Java version 1.8 hoặc 1.11
- Download trên trang chủ: https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
- Nếu các bạn ngại đăng kí tài khoản trên Oracle thì tải file cài đặt Offline: https://drive.google.com/drive/folders/1iCTMnWFQzMrMoN2ZSZxHl4dDuIhnqztO
- Trong này mình đã để sẵn các file Offline: Java/ Eclipse/ Firefox/ Selenium/ Driver
- Sau khi tải về -> cài đặt bình thường -> click Next -> Install cho đến khi hoàn tất
- Sau khi cài đặt xong bật command line (cmd) kiểm tra version đã cài đặt thành công
- java -version
Cài đặt Eclipse IDE
Sử dụng từ bản Eclipse Photon trở lên
- Link download: https://www.eclipse.org/downloads/packages/release/, tùy vào hệ thống của bạn phiên bản 32/64 bit để lựa chọn cho phù hợp. Chọn bản Eclipse IDE for Java Developer là đáp ứng đủ cho nhu cầu công việc.
Download Selenium
- Link download: http://selenium-release.storage.googleapis.com/index.html?path=2.53/
- Chọn và tải: selenium-server-standalone-2.53.1.jar
Tạo Java project
- Xả nén Elipse IDE > chạy eclipse.exe từ bước 2 đã tải về
- Tạo 1 thư mục ngang hàng vs thư mục eclipse – đặt tên là my_work_space
- Set workspace – mục đích để nếu cài đặt lại hệ thống thì eclipse sẽ tự load lại các dự án/tùy chọn bạn đã làm việc trước đó – ko cần phải cài đặt lại
- Tạo mới Project: File > New > Java Project > [Đặt tên Project] > Finish
- Project name: Selenium Tutorials
- Tạo mới Package: Right click vào thư mục src > New > Package > [Đặt tên Package] >Finish
- Package name: automationfc.com
- Tạo mới Class: Right click vào Package > New > Class > [Đặt tên Class] > Finish
- Class name: Topic_01_Check_Environment
Add thư viện
- Tạo mới 1 thư mục trong project để lưu trữ các java library hoặc browser driver cần dùng
- Đặt tên thư mục là lib
- Copy thư viện selenium-server-standalone-2.53.1.jar từ bước 03 ở trên dán vào thư mục lib
- Click chuột phải vào thư viện và Add vào Build Path
Add TestNG (Test Runner) vào Eclipse
- Chọn Help > Install New Software
- Nhập:
- Name = TestNG
- Location = https://testng.org/testng-eclipse-update-site/6.14.3/
- Click Add
- Click vào Select All và nhấn Next button
- Click “I accept the terms of the license agreement” và nhấn Finish button
- Nếu hiện ra 1 popup thông báo về Security Warning, nhấn OK để tiếp tục
- Hoàn thành, click Yes để khởi động lại Eclipse
- Sau khi khởi động xong, cần kiểm tra TestNG đã được cài đặt thành công: Window > Preferences
- TestNG plugin đã được tích hợp vào Eclipse
Demo run testcase
- Copy và Paste toàn bộ vào Class <Topic_01_Check_Environment> đã tạo
package automationfc.com; import java.util.concurrent.TimeUnit; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.testng.Assert; import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; public class Topic_01_Check_Environment { WebDriver driver; @BeforeClass public void beforeClass() { driver = new FirefoxDriver(); driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); driver.manage().window().maximize(); driver.get("http://demo.guru99.com/v4/"); } @Test public void TC_01_ValidateCurrentUrl() { // Login Page Url matching String loginPageUrl = driver.getCurrentUrl(); Assert.assertEquals(loginPageUrl, "http://demo.guru99.com/v4/"); } @Test public void TC_02_ValidatePageTitle() { // Login Page title String loginPageTitle = driver.getTitle(); Assert.assertEquals(loginPageTitle, "Guru99 Bank Home Page"); } @Test public void TC_03_LoginFormDisplayed() { // Login form displayed Assert.assertTrue(driver.findElement(By.xpath("//form[@name='frmLogin']")).isDisplayed()); } @AfterClass public void afterClass() { driver.quit(); } }
- Nếu gặp báo error thì import thư viện vào bằng cách hover vào hàm bị báo lỗi và import đúng thư viện cần thiết
- Run testcase
- Click chuột phải vào Class test chọn Run As > TestNG Test
- Kết quả sau khi run pass
Chào anh,
em làm theo đúng trình tự nhưng khi chạy nó báo lỗi như vầy
Exception in thread “main” java.lang.NoClassDefFoundError: com/beust/jcommander/ParameterException
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
at java.lang.Class.privateGetMethodRecursive(Unknown Source)
at java.lang.Class.getMethod0(Unknown Source)
at java.lang.Class.getMethod(Unknown Source)
at sun.launcher.LauncherHelper.validateMainClass(Unknown Source)
at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
Caused by: java.lang.ClassNotFoundException: com.beust.jcommander.ParameterException
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
… 7 more
anh có thể chỉ em cách khắc phục ko? Cảm ơn.
LikeLike
Bạn gửi đoạn code lên mình check thử nhé.
LikeLike
sao ko hiên trình duyệt trên firefox vậy
LikeLike
Mô tả lỗi rõ chút nhé:
– Push code lên
– Chụp hình lỗi
– Lỗi hiển thị có message như thế nào.
LikeLike
Em chào anh ạ. Anh cho em hỏi, ver firefox nào thì tương thích với selenium 2.53.1 này ạ? Em run test mà nó báo version k phù hợp ạ. Em cảm ơn anh nhiều ạ.
LikeLike
Version 47 em. Em download bản offline ở đây rồi cài đè lên version hiện tại, cài xong tắt chế độ tự động Update đi nhé.
LikeLike
Hì hì. Nó hoạt động được rồi ạ. em cảm ơn anh ạ.
LikeLike
Vâng ạ. em cảm ơn anh nhiều ạ.
LikeLike
Code của em:
package org.webdriver.demo;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.annotations.Test;
@Test
public class LoginTest{
public void testLoginWithBlankField() {
System.setProperty(“webdriver.gecko.driver”, “geckodriver”);
DesiredCapabilities capabilities = DesiredCapabilities.firefox();
capabilities.setCapability(“marionette”, true);
WebDriver driver = new FirefoxDriver();
}
}
LikeLike
Bị lỗi này ạ, anh giúp em với
FAILED: testLoginWithBlankField
org.openqa.selenium.WebDriverException: org.apache.http.conn.HttpHostConnectException: Connect to localhost:30775 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused (Connection refused)
Build info: version: ‘3.5.2’, revision: ‘10229a9020’, time: ‘2017-08-21T17:54:21.164Z’
System info: host: ‘Les-Mac-mini.local’, ip: ‘fe80:0:0:0:1450:b47f:23f2:b317%en0’, os.name: ‘Mac OS X’, os.arch: ‘x86_64’, os.version: ‘10.12.5’, java.version: ‘1.8.0_144’
Driver info: driver.version: FirefoxDriver
LikeLike
E đổi lại ntn nhé:
public class LoginTest{
WebDriver driver
@Test
public void testLoginWithBlankField() {
System.setProperty(“webdriver.gecko.driver”, “geckodriver”);
DesiredCapabilities capabilities = DesiredCapabilities.firefox();
capabilities.setCapability(“marionette”, true);
driver = new FirefoxDriver();
}
}
LikeLike
của e lỗi như này là sao ạ??
LikeLike
Lỗi này em cập nhật lại browser firefox là được nhé, install bản Firefox 47.0.2 là được.
LikeLike
Em run nó mở firefox version mới nhất ra newtab, sau đó nó văng. Bản Firefox 47.0.2 nằm trong thư mục “C:\Program Files (x86)” còn bản mới nằm trong “C:\Program Files”
LikeLike
Em cài 1 bản firefox thôi nhé, gỡ các bản khác ra, nếu dùng selenium 2.xx thì dùng firefox = 48 nhé.
Nếu mới làm/ học thì em xài như trên a suggest là firefox 47.0.2, cài xong tắt chế độ auto update của firefox đi, sử dụng selenium-server-standalone 2.53.1 là chạy được.
LikeLike
Em chạy được rồi, cám ơn a nhiều ạ 🙂
LikeLike
Location = http://beust.com/eclipse-old/eclipse_6.9.10.201512240000
Link này hết hoạt động rồi giờ mình install bằng gì vậy a.
LikeLike
Thay thế bằng link này nhé: https://dl.bintray.com/testng-team/testng-eclipse-release/6.14.3/
LikeLike
e bị lỗi này ạ, e có cài firefox bản 48.0 cũng lỗi, sau gỡ cài bản 47 cũng lỗi
LikeLike
LikeLike
Em check thử các môi trường sau xem đúng ko nhé:
– Selenium 2.53.1
– Chrome mới nhất
– Chrome driver mới nhất
– Firefox bản 47.0.2
– Khi khởi tạo driver chỉ cần new FirefoxDriver() lên là dc – ko cần GeckoDriver
Ví dụ: driver = new FirefoxDriver();
Nếu ko được nữa thì add Skype a check giúp cho em.
LikeLike
Em chào anh,
Hiện tại em mới bắt đầu học Selenium em đang gặp lỗi này, anh hỗ trợ giúp em với ạ
Selenium version:3.141.59
chromedriver:85.0.4183.38
geckodriver: v0.27.0
public class login {
private WebDriver driver;
@Test
public void TestCase1_OpenWeb() {
// Mở website
driver.get("https://www.google.com/");
}
@BeforeMethod
public void beforeMethod() {
// Khởi tạo trình duyệt Firefox
System.setProperty("webdriver.gecko.driver", "F:\\project_java\\Browser\\geckodriver.exe");
driver = new FirefoxDriver();
}
@AfterMethod
public void afterMethod() {
// Đóng trình duyệt
driver.quit();
}
LikeLike
Em check lại đúng version mới nhất của trình duyệt Firefox là được nhé.
LikeLike
hi anh ,
Em gặp lỗi mong a giúp đỡ ạ, em mới bắt đầu học selenium và gặp lỗi như này ạ.Rất mong được anh giúp đỡ
11:02:11.977 INFO [GridLauncherV3.parse] – Selenium server version: 3.141.59, revision: e82be7d358
11:02:12.141 INFO [GridLauncherV3.lambda$buildLaunchers$3] – Launching a standalone Selenium Server on port 4444
2020-08-13 11:02:12.305:INFO::main: Logging initialized @724ms to org.seleniumhq.jetty9.util.log.StdErrLog
11:02:12.669 INFO [WebDriverServlet.] – Initialising WebDriverServlet
11:02:12.786 ERROR [BaseServer.start] – Port 4444 is busy, please choose a free port and specify it using -port option
LikeLike
em tìm hiểu mấy chỗ mà k hiểu vì sao. em cũng đã làm theo anh nhưng vẫn không được :((( em bị miss chỗ nào k ta
LikeLike