There are multiple ways to check whether an element is visible or not in a page.
Approach 1: Using page.locator(someLocator).isVisible() method
isVisible() method return true, if the element is visible, else false.
Approach 2: Using page.isVisible method.
page.isVisible(someSelector)
Approach 3: By counting the number of elements matched to given selector.
page.locator(someSelector).count()
elementVisibleCheck.html
<!DOCTYPE html>
<html>
<body>
<h1>Element visible check</h1>
<p id="myPara1">Hi there</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();
}
}
}
ElementVisibleCheck.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.Page;
import com.microsoft.playwright.Playwright;
import com.sample.app.util.FileUtil;
public class ElementVisibleCheck {
public static void elementVisibleCheck(final Page page, final String selector) {
boolean isVisible1 = page.locator(selector).isVisible();
boolean isVisible2 = page.isVisible(selector);
boolean isVisible3 = (page.locator(selector).count() > 0 ? true : false);
System.out.println("\nis the element with selector " + selector + " visible : " + isVisible1);
System.out.println("is the element with selector " + selector + " visible : " + isVisible2);
System.out.println("is the element with selector " + selector + " visible : " + isVisible3);
}
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("locators" + File.separator + "elementVisibleCheck.html");
Page page = browser.newPage();
page.setContent(content);
String idSelector = "p[id=\"myPara1\"]";
elementVisibleCheck(page, idSelector);
idSelector = "p[id=\"myPara2\"]";
elementVisibleCheck(page, idSelector);
}
}
}
Output
is the element with selector p[id="myPara1"] visible : true is the element with selector p[id="myPara1"] visible : true is the element with selector p[id="myPara1"] visible : true is the element with selector p[id="myPara2"] visible : false is the element with selector p[id="myPara2"] visible : false is the element with selector p[id="myPara2"] visible : false
No comments:
Post a Comment