With Selenium 4, the getRect()
introduced to fetch the element position with respect to top left corner of element and the element size instead of using 2 different methods as getLocation() & getSize() to achieve the same [selenium <= 3.x versions].
Prior to selenium 4, you have use
getLocation() to fetch the X & Y axis values
Point p = el.getLocation();
System.out.println(p.x + " " + p.y);
getSize() to fetch the height and width of an element
Dimension d = el.getSize();
System.out.println(d.height + " " + d.width);
Selenium 4 provides Rectangle
class to achieve this feature, this class exposes getRect() to get the element position and size.
getRect().x -> X axis value from top left corner of an element
getRect().y -> Y axis value from top left corner of an element
getRect().width & getRect().height – size of an element
Let’s see the code implementation
import io.github.bonigarcia.wdm.WebDriverManager;import org.openqa.selenium.By;import org.openqa.selenium.Rectangle;import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;import org.openqa.selenium.chrome.ChromeDriver;import org.testng.annotations.BeforeMethod;import org.testng.annotations.Test;public class GetRect {private static WebDriver driver;@BeforeMethodvoid Login() throws InterruptedException {WebDriverManager.chromedriver().setup();driver = new ChromeDriver();driver.get("https://qavbox.github.io/demo/webtable/");Thread.sleep(2000);}@Testpublic void ElScreenshot() throws InterruptedException {WebElement el = driver.findElement(By.id("regform"));Rectangle rect = el.getRect();System.out.println("X-Axis - " + rect.x ); //from left top corner of elementSystem.out.println("Y-Axis - " + rect.y );System.out.println("Element Width - " + rect.width );System.out.println("Element Height - " + rect.height );//ORSystem.out.println(rect.getX());System.out.println(rect.getY());System.out.println(rect.getWidth());System.out.println(rect.getHeight());Thread.sleep(3000);driver.quit();}}
As you can see in above code, we can use the rect.x or rect.getX() to fetch the x axis position, same for y axis, height & width of an element.