Untitled
unknown
java
2 years ago
3.3 kB
10
Indexable
package com.lambdatest.factory;
import com.google.gson.JsonObject;
import com.microsoft.playwright.*;
import java.io.*;
import java.net.URLEncoder;
import java.util.Properties;
public class PlaywrightFactory {
private Playwright playwright;
private Page page;
private Browser browser;
private BrowserContext context;
private String LAMBDATEST_URL, configFileName;
private Properties properties;
private FileInputStream configFile;
private String rootFolder = System.getProperty("user.dir");
public Page initBrowser(String browserName) {
playwright = Playwright.create();
configFileName = "accountInfo.properties";
properties = new Properties();
try {
configFile = new FileInputStream(rootFolder + File.separator + configFileName);
properties.load(configFile);
configFile.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
JsonObject capabilities = new JsonObject();
JsonObject ltOptions = new JsonObject();
String user = getAccount("username");
String accessKey = getAccount("access_key");
capabilities.addProperty("browserVersion", "latest");
ltOptions.addProperty("platform", "Windows 11");
ltOptions.addProperty("build", "Playwright Java Build");
ltOptions.addProperty("user", user);
ltOptions.addProperty("accessKey", accessKey);
System.out.println("Access_key " + accessKey);
System.out.println("username " + user);
capabilities.add("LT:Options", ltOptions);
try {
String caps = URLEncoder.encode(capabilities.toString(), "utf-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
String cdpUrl = "wss://cdp.lambdatest.com/playwright?capabilities=" + capabilities;
LAMBDATEST_URL = "https://www.lambdatest.com/selenium-playground/";
switch (browserName.toLowerCase()) {
case "firefox":
browser = playwright.firefox().connect(cdpUrl);
break;
case "chrome":
browser = playwright.chromium().connect(cdpUrl);
break;
default:
System.out.println("Please input the browser name");
break;
}
context = browser.newContext(); // Set the context value
page = context.newPage(); // Set the page value within the context
page.navigate(LAMBDATEST_URL);
return page;
}
public String getAccount(String keyword){
if(keyword.equalsIgnoreCase("username")){
return properties.getProperty("username");
} else if (keyword.equalsIgnoreCase("access_key")){
return properties.getProperty("access_key");
}
return null;
}
public static void setTestStatus(String status, String remark, Page page) {
Object result;
result = page.evaluate("_ => {}", "lambdatest_action: { \"action\": \"setTestStatus\", \"arguments\": { \"status\": \"" + status + "\", \"remark\": \"" + remark + "\"}}");
}
}Editor is loading...