Getting Element's coordinate in Selenium

Dahun Yoo·2022년 3월 1일
0
post-thumbnail

Selenium 4.0이상부터는 WebElement의 좌표를 알아낼 수 있습니다.


Using Rectangle Class

driver.get("http://www.gmail.com");

WebElement image = driver.findElement(By.id("logo"));

Rectangle rect = image.getRect();

System.out.println("Height : " + rect.getHeight());
System.out.println("Width : " + rect.getWidth());
System.out.println("X Coord : " + rect.getX());
System.out.println("Y Coord : " + rect.getY());

Rectangle 클래스를 이용하여 해당 WebElement의 높이와 길이는 물론 X, Y좌표를 파악할 수 있습니다.

우리는 이 좌표를 이용해서 findElement로 제대로 잡아내지 못하는 element들에 대해 조작을 해볼 수 있습니다.

Using Action class

브라우저 상에서 스크립트 동작으로 키보드나 마우스 동작을 할 수 있도록 지원하는 Action 클래스를 이용할 수 있습니다.

Actions action = new Actions(driver);

//move mouse to button using XY cood

WebElement link = driver.findElement(By.linkText("Gmail"));
int x = link.getRect().getX();
int y = link.getRect().getY();

action.moveByOffset(x,y).click().perform();

moveByOffset() 을 이용해, 해당 위치로 마우스를 이동시키고, click() 을 실행시켜 해당 element를 클릭하도록 할 수 있습니다.

Action 클래스를 이용한 모든 동작에는, 행위의 마지막에 perform() 메소드를 호출해주어야만 실행됩니다.

profile
QA Engineer

0개의 댓글