Monday, 1 May 2023

Playwright: how to get the element attributes?

Using Locator getAttribute method, we can get the attribute value of given element.

 

Signature

String getAttribute(String name)
String getAttribute(String name, GetAttributeOptions options)

Example

Locator locator = page.locator("p#para1");
String clazz = locator.getAttribute("class");

Find the below working application.

 

elementAttributes.html

<html>
	<body>
		<p class="summary", id="para1">Paragraph1</p>
	</body>
</html>

FileUtil.java

package com.sample.app.util;

import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;

public class FileUtil {
	
	public static String resourceAsString(String resourceName) throws IOException {
		ClassLoader classLoader = FileUtil.class.getClassLoader();
		URL url = classLoader.getResource(resourceName);
		if (url == null) {
			return null;
		}

		URLConnection urlConnection = url.openConnection();

		urlConnection.setUseCaches(false);

		try (InputStreamReader inputStreamReader = new InputStreamReader(urlConnection.getInputStream())) {
			char[] buffer = new char[1048];
			StringBuilder builder = new StringBuilder();

			int count = -1;
			while ((count = inputStreamReader.read(buffer, 0, buffer.length)) != -1) {
				builder.append(buffer, 0, count);
			}

			return builder.toString();
		}

	}
}

ElementAttributesDemo.java

package com.sample.app.miscellaneous;

import java.io.File;
import java.io.IOException;

import com.microsoft.playwright.Browser;
import com.microsoft.playwright.BrowserType;
import com.microsoft.playwright.Locator;
import com.microsoft.playwright.Page;
import com.microsoft.playwright.Playwright;
import com.sample.app.util.FileUtil;

public class ElementAttributesDemo {

	public static void main(String[] args) throws IOException {
		try (Playwright playwright = Playwright.create()) {
			Browser browser = playwright.chromium()
					.launch(new BrowserType.LaunchOptions().setHeadless(false).setSlowMo(100));
			final String content = FileUtil
					.resourceAsString("miscellaneous" + File.separator + "elementAttributes.html");

			Page page = browser.newPage();
			page.setContent(content);

			Locator loctor = page.locator("p#para1");
			String clazz = loctor.getAttribute("class");
			String id = loctor.getAttribute("id");

			System.out.println("class : " + clazz);
			System.out.println("id : " + id);

		}
	}

}

Output

class : summary
id : para1


Previous                                                 Next                                                 Home

No comments:

Post a Comment