Using Locator.focus() method we can focus the element.
Let’s see it with an example.
Example
page.locator("#demo").focus();
Find the below working application.
focusAction.html
<!DOCTYPE html>
<html>
<body>
Enter your something: <input type="text" id="demo" onfocusout="f1()" onfocusin="f2()" onfocus="f3()">
<br />
<br />
<br />
onfocusout: <p id="result1"></p>
onfocusin: <p id="result2"></p>
onfocus: <p id="result3"></p>
<input type="button" id="myButton" value="submit" />
<script>
function f1() {
let x = document.getElementById("demo");
x.value = x.value.toUpperCase();
document.getElementById("result1").innerHTML = x.value;
document.getElementById("result2").innerHTML = "";
document.getElementById("result3").innerHTML = "";
}
function f2() {
document.getElementById("result2").innerHTML = "Element is in focus";
}
function f3() {
document.getElementById("result3").innerHTML = "Element is in focus";
}
</script>
</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();
}
}
}
FocusEvent.java
package com.sample.app.actions;
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 FocusEvent {
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("actions" + File.separator + "focusAction.html");
Page page = browser.newPage();
page.setContent(content);
page.locator("#demo").focus();
String result1, result2, result3;
result1 = page.locator("#result1").innerText();
result2 = page.locator("#result2").innerText();
result3 = page.locator("#result3").innerText();
System.out.println("result1 : " + result1);
System.out.println("result2 : " + result2);
System.out.println("result3 : " + result3);
System.out.println("\nType hello to input box");
page.locator("#demo").type("Hello");
result1 = page.locator("#result1").textContent();
result2 = page.locator("#result2").textContent();
result3 = page.locator("#result3").textContent();
System.out.println("result1 : " + result1);
System.out.println("result2 : " + result2);
System.out.println("result3 : " + result3);
// To generate focus out event
System.out.println("\nMove the cursor out of textbox");
page.locator("#myButton").click();
result1 = page.locator("#result1").textContent();
result2 = page.locator("#result2").textContent();
result3 = page.locator("#result3").textContent();
System.out.println("result1 : " + result1);
System.out.println("result2 : " + result2);
System.out.println("result3 : " + result3);
}
}
}
Output
result1 : result2 : Element is in focus result3 : Element is in focus Type hello to input box result1 : result2 : Element is in focus result3 : Element is in focus Move the cursor out of textbox result1 : HELLO result2 : result3 :
Previous Next Home
No comments:
Post a Comment