Jacobvu84 / serenity-pageobject-junit-webdriver

4 stars 1 forks source link

[Web] [PageObject][Robot] Click on element by coordinates #71

Open Jacobvu84 opened 3 years ago

Jacobvu84 commented 3 years ago
import java.awt.AWTException;
import java.awt.Robot;

import net.serenitybdd.core.pages.PageObject;
import net.serenitybdd.core.pages.WebElementFacade;

public class Tap extends PageObject{

    public void onElementByPosition(WebElementFacade element) {
        // onPage: Returns: coordinates on the element relative to the top-left corner of the the page.
            // onPage: Trả lại vị trị của element, lấy góc trên bên phải của trang web làm gốc tọa độ
        int pointX =  element.getCoordinates().onPage().getX();
        int pointY = element.getCoordinates().onPage().getY();

        try {
            Robot robot = new Robot();
            robot.mouseMove(pointX, pointY);
            robot.mousePress(MouseButton.LEFT.asArg());
            robot.mouseRelease(MouseButton.LEFT.asArg());

        } catch (AWTException e) {
            e.printStackTrace();
        }
    }
}
Jacobvu84 commented 3 years ago

Sử dụng Action

import net.serenitybdd.core.pages.PageObject;
import net.serenitybdd.core.pages.WebElementFacade;

public class Tap extends PageObject{

    public void onElementWithAction(WebElementFacade element) {
        // element xác định bằng xpath như bình thường
        withAction().moveToElement(element).click().build().perform();
    }
}