VietTuts

Tự Học Lập Trình Online

  • Home
  • Java
  • Servlet
  • JSP
  • Struts2
  • Hibernate
  • Spring
  • MyBatis
  • Java WS
  • C
  • C++
  • C#
  • Python
  • PHP
  • Excel
  • VBA
  • Web
    • JavaScript
    • JQUERY
    • JSON
    • AJAX
    • CSS
    • HTML
    • HTML5
    • Node.js
    • Angular 7
  • SQL
    • MySQL
    • SQL Server
  • Misc
    • Eclipse
    • Phần mềm tiện ích
    • Cấu trúc DL&GT
    • Selenium Test

Học Selenium - Automation Test

Kiểm thử tự động là gì? Automation Testing Selenium là gì? Các lệnh trong Selenium IDE – “Selenese” Giới thiệu Selenium Webdriver Selenium WebDriver Locators – xác định vị trí phần tử HTML

Tương Tác Người Dùng

Tương tác người dùng Tương tác Text Box Tương tác Radio Button Tương tác Check Box Tương tác Drop Down Ví dụ kéo thả trong Selenium Thao tác bàn phím Thao tác chuột Chọn nhiều hạng mục Tìm tất cả Link

Selenium WebDriver Nâng Cao

Page Object Model (POM) Selenium WebDriver Page Factory trong Selenium WebDriver XPath trong Selenium WebDriver Inject JQuery trong Selenium WebDriver
1 / 3
❮ ❯

Page Factory trong Selenium


Page Object Model (POM) trong Selenium
XPath trong Selenium WebDriver

Page Factory trong Selenium là một khái niệm mô hình đối tượng trang sẵn có cho Selenium WebDriver và nó rất tối ưu.

Với sự trợ giúp của lớp PageFactory, chúng ta sử dụng chú thích @FindBy để tìm WebElement.

@FindBy có thể chấp nhận tagName, partialLinkText, name, linkText, id, css, className, xpath dưới dạng thuộc tính.

Ví dụ Page Factory trong Selenium

Nội dung chính

  • Ví dụ Page Factory trong Selenium

Ví dụ Page Factory trong Selenium

Hãy xem ví dụ tương tự như Page Object Model (POM) trong Selenium bằng cách sử dụng Page Factory:

File: Utils.java

package vn.viettuts.selenium;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;

public class Utils {
    public static boolean waitForElementDisplay(WebDriver driver, By by, 
            int waitInSecond) {
        for (int i = 0; i < waitInSecond / 2 + 1; i++) {
            try {
                if (driver.findElement(by).isDisplayed()) {
                    return true;
                }
                Thread.sleep(2 * 1000);
            } catch (Exception e) {
                System.out.println("waiting element for display...");
            }
        }
        return false;
    }
}

File: FacebookLogin.java

package vn.viettuts.selenium;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.PageFactory;

public class FacebookLogin {
    private WebDriver driver;
    
    @FindBy(id="email")
    private WebElement weEmail;
    @FindBy(id="pass")
    private WebElement wsPassword;
    @FindBy(id="loginbutton")
    private WebElement wsTtnLogin;
    
    public FacebookLogin(WebDriver driver) {
        this.driver = driver;
        PageFactory.initElements(driver, this);
    }

    public FacebookHomePage login(String email, String password) {
        // enter email
        weEmail.sendKeys(email);
        // enter password
        wsPassword.sendKeys(password);
        // click login button
        wsTtnLogin.click();
        // return home page
        return new FacebookHomePage(driver);
    }
}

File: FacebookHomePage.java

package vn.viettuts.selenium;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.support.PageFactory;

public class FacebookHomePage {
    private WebDriver driver;
    private By byUserNavigation = By.id("userNavigationLabel");

    public FacebookHomePage(WebDriver driver) {
        this.driver = driver;
        PageFactory.initElements(driver, this);
    }

    public boolean isDisplayed() {
        if (Utils.waitForElementDisplay(driver, byUserNavigation, 10)) {
            return true;
        } else {
            return false;
        }
    }
}

File: TestLoginFacebook.java

package vn.viettuts.selenium;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class TestLoginFacebook {
    public static void main(String[] args) {
        System.setProperty("webdriver.chrome.driver", 
                "D:\\SeleniumWebdriver\\chromedriver.exe");
        WebDriver driver = new ChromeDriver();
        // Open website
        driver.get("https://facebook.com");
        // Maximize the browser
        driver.manage().window().maximize();
        // Login facebook
        FacebookLogin facebookLogin = new FacebookLogin(driver);
        FacebookHomePage homePage = facebookLogin.login("viettuts@gmail.com", 
                "helloPW123");
        if (homePage.isDisplayed()) {
            System.out.println("Login Successfully!");
        } else {
            System.out.println("Login Fail!");
        }
        // Quit driver
        driver.quit();
    }
}

Kết quả:

waiting element for display...
waiting element for display...
waiting element for display...
waiting element for display...
waiting element for display...
waiting element for display...
Login Fail!

Page Object Model (POM) trong Selenium
XPath trong Selenium WebDriver

Recent Updates

Selenium Test là gì? - Kiểm thử tự độngCác lệnh trong Selenium IDE - “Selenese”Chọn nhiều hạng mục trong SeleniumGiới thiệu Selenium WebdriverInject JQuery trong Selenium WebDriverKéo và thả trong SeleniumMouse actions trong SeleniumPage Factory trong SeleniumPage Object Model (POM) trong SeleniumSelenium WebDriver - Tương tác CheckBoxSelenium WebDriver - Tương tác Drop DownSelenium WebDriver - Tương tác người dùngSắp Tết 2026 Rồi! - Còn bao nhiêu ngày nữa là đến tết 2026?

VietTuts on facebook

Học Lập Trình Online Miễn Phí - VietTuts.Vn
Danh Sách Bài Học

Học Java | Hibernate | Spring
Học Excel | Excel VBA
Học Servlet | JSP | Struts2
Học C | C++ | C#
Học Python
Học SQL

Bài Tập Có Lời Giải

Bài tập Java
Bài tập C
Bài tập C++
Bài tập C#
Bài tập Python
Ví dụ Excel VBA

Câu Hỏi Phỏng Vấn

201 câu hỏi phỏng vấn java
25 câu hỏi phỏng vấn servlet
75 câu hỏi phỏng vấn jsp
52 câu hỏi phỏng vấn Hibernate
70 câu hỏi phỏng vấn Spring
57 câu hỏi phỏng vấn SQL

Scroll back to top

Copyright © 2016 VietTuts.Vn all rights reserved. | Liên hệ | Chính sách - riêng tư | sitemap.html | sitemap_index.xml