All Downloads are FREE. Search and download functionalities are using the official Maven repository.
Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
com.applitools.eyes.selenium.CommandExecutor Maven / Gradle / Ivy
package com.applitools.eyes.selenium;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import com.applitools.eyes.EyesException;
import com.applitools.eyes.Region;
import com.applitools.eyes.SyncTaskListener;
import com.applitools.eyes.locators.TextRegion;
import com.applitools.eyes.selenium.universal.dto.CheckEyes;
import com.applitools.eyes.selenium.universal.dto.CheckSettingsDto;
import com.applitools.eyes.selenium.universal.dto.Command;
import com.applitools.eyes.selenium.universal.dto.ConfigurationDto;
import com.applitools.eyes.selenium.universal.dto.DriverDto;
import com.applitools.eyes.selenium.universal.dto.EventDto;
import com.applitools.eyes.selenium.universal.dto.ExtractTextDto;
import com.applitools.eyes.selenium.universal.dto.ExtractTextRegionsDto;
import com.applitools.eyes.selenium.universal.dto.LocateDto;
import com.applitools.eyes.selenium.universal.dto.MakeManager;
import com.applitools.eyes.selenium.universal.dto.MakeSdk;
import com.applitools.eyes.selenium.universal.dto.MatchResultDto;
import com.applitools.eyes.selenium.universal.dto.OCRExtractSettingsDto;
import com.applitools.eyes.selenium.universal.dto.OCRSearchSettingsDto;
import com.applitools.eyes.selenium.universal.dto.OpenEyes;
import com.applitools.eyes.selenium.universal.dto.RectangleSizeDto;
import com.applitools.eyes.selenium.universal.dto.RequestDto;
import com.applitools.eyes.selenium.universal.dto.ResponseDto;
import com.applitools.eyes.selenium.universal.dto.TestResultsSummaryDto;
import com.applitools.eyes.selenium.universal.dto.VisualLocatorSettingsDto;
import com.applitools.eyes.selenium.universal.dto.request.CommandCloseAllEyesRequestDto;
import com.applitools.eyes.selenium.universal.dto.request.CommandCloseManagerRequestDto;
import com.applitools.eyes.selenium.universal.dto.request.CommandCloseRequestDto;
import com.applitools.eyes.selenium.universal.dto.request.CommandGetViewportSizeRequestDto;
import com.applitools.eyes.selenium.universal.dto.response.CommandCloseResponseDto;
import com.applitools.utils.GeneralUtils;
import org.openqa.selenium.StaleElementReferenceException;
/**
* command executor
*/
public class CommandExecutor {
private static USDKConnection connection;
private static volatile CommandExecutor instance;
public static CommandExecutor getInstance(String name, String version) {
if (instance == null) {
synchronized (CommandExecutor.class) {
if (instance == null) {
instance = new CommandExecutor(name, version);
}
}
}
return instance;
}
private CommandExecutor(String name, String version) {
connection = new USDKConnection();
connection.init();
makeSdk(name, version, GeneralUtils.getPropertyString("user.dir"), "webdriver");
}
public void makeSdk(String name, String version, String cwd, String protocol) {
EventDto request = new EventDto<>();
MakeSdk makeSdk = new MakeSdk(name, version, cwd, protocol);
request.setName("Core.makeSDK");
request.setPayload(makeSdk);
checkedCommand(request, false);
}
public Reference coreMakeManager(String type, Integer concurrency, Boolean isLegacy) {
RequestDto request = new RequestDto<>();
request.setName("Core.makeManager");
request.setKey(UUID.randomUUID().toString());
request.setPayload(new MakeManager(type, concurrency, isLegacy));
SyncTaskListener syncTaskListener = checkedCommand(request, true);
ResponseDto response = (ResponseDto) syncTaskListener.get();
if (response != null && response.getPayload().getError() != null) {
String message = response.getPayload().getError().getMessage();
if (message != null && message.contains("stale element reference")) {
throw new StaleElementReferenceException(message);
}
throw new EyesException(message);
}
return response.getPayload().getResult();
}
public Reference managerOpenEyes(Reference ref, DriverDto driverDto, ConfigurationDto config) {
RequestDto request = new RequestDto<>();
request.setName("EyesManager.openEyes");
request.setKey(UUID.randomUUID().toString());
request.setPayload(new OpenEyes(ref, driverDto, config));
SyncTaskListener syncTaskListener = checkedCommand(request, true);
ResponseDto referenceResponseDto = (ResponseDto) syncTaskListener.get();
if (referenceResponseDto != null && referenceResponseDto.getPayload().getError() != null) {
String message = referenceResponseDto.getPayload().getError().getMessage();
if (message != null && message.contains("stale element reference")) {
throw new StaleElementReferenceException(message);
}
throw new EyesException(message);
}
return referenceResponseDto.getPayload().getResult();
}
public void eyesCheck(Reference eyesRef, CheckSettingsDto settings, ConfigurationDto config) {
RequestDto request = new RequestDto<>();
request.setName("Eyes.check");
request.setKey(UUID.randomUUID().toString());
request.setPayload(new CheckEyes(eyesRef, settings, config));
SyncTaskListener syncTaskListener = checkedCommand(request, true);
ResponseDto responseDto = (ResponseDto) syncTaskListener.get();
if (responseDto != null && responseDto.getPayload().getError() != null) {
String message = responseDto.getPayload().getError().getMessage();
if (message != null && message.contains("stale element reference")) {
throw new StaleElementReferenceException(message);
}
throw new EyesException(message);
}
}
public Map> locate(Reference eyesRef, VisualLocatorSettingsDto locatorSettingsDto, ConfigurationDto config) {
RequestDto request = new RequestDto<>();
request.setName("Eyes.locate");
request.setKey(UUID.randomUUID().toString());
request.setPayload(new LocateDto(eyesRef, locatorSettingsDto, config));
SyncTaskListener syncTaskListener = checkedCommand(request, true);
ResponseDto>> locateResponse = (ResponseDto>>) syncTaskListener.get();
if (locateResponse != null && locateResponse.getPayload().getError() != null) {
String message = locateResponse.getPayload().getError().getMessage();
if (message != null && message.contains("stale element reference")) {
throw new StaleElementReferenceException(message);
}
throw new EyesException(message);
}
return locateResponse.getPayload().getResult();
}
public Map> extractTextRegions(Reference eyesRef, OCRSearchSettingsDto searchSettingsDto, ConfigurationDto config) {
RequestDto request = new RequestDto<>();
request.setName("Eyes.extractTextRegions");
request.setKey(UUID.randomUUID().toString());
request.setPayload(new ExtractTextRegionsDto(eyesRef, searchSettingsDto, config));
SyncTaskListener syncTaskListener = checkedCommand(request, true);
ResponseDto>> extractTextRegionsResponse = (ResponseDto>>) syncTaskListener.get();
if (extractTextRegionsResponse != null && extractTextRegionsResponse.getPayload().getError() != null) {
String message = extractTextRegionsResponse.getPayload().getError().getMessage();
if (message != null && message.contains("stale element reference")) {
throw new StaleElementReferenceException(message);
}
throw new EyesException(message);
}
return extractTextRegionsResponse.getPayload().getResult();
}
public List extractText(Reference eyesRef, List extractSettingsDtoList, ConfigurationDto config) {
RequestDto request = new RequestDto<>();
request.setName("Eyes.extractText");
request.setKey(UUID.randomUUID().toString());
request.setPayload(new ExtractTextDto(eyesRef, extractSettingsDtoList, config));
SyncTaskListener syncTaskListener = checkedCommand(request, true);
ResponseDto> responseDto = (ResponseDto>) syncTaskListener.get();
if (responseDto != null && responseDto.getPayload().getError() != null) {
String message = responseDto.getPayload().getError().getMessage();
if (message != null && message.contains("stale element reference")) {
throw new StaleElementReferenceException(message);
}
throw new EyesException(message);
}
return responseDto.getPayload().getResult();
}
public List close(Reference eyesRef, boolean waitResult) {
RequestDto request = new RequestDto<>();
request.setName("Eyes.close");
request.setKey(UUID.randomUUID().toString());
request.setPayload(new CommandCloseRequestDto(eyesRef));
SyncTaskListener syncTaskListener = checkedCommand(request, waitResult);
if (!waitResult) {
return null;
}
ResponseDto> closeResponse = (ResponseDto>) syncTaskListener.get();
if (closeResponse != null && closeResponse.getPayload() != null && closeResponse.getPayload().getError() != null) {
String message = closeResponse.getPayload().getError().getMessage();
if (message != null && message.contains("stale element reference")) {
throw new StaleElementReferenceException(message);
}
throw new EyesException(message);
}
return closeResponse.getPayload().getResult();
}
public List abort(Reference eyesRef, boolean waitResult) {
RequestDto request = new RequestDto<>();
request.setName("Eyes.abort");
request.setKey(UUID.randomUUID().toString());
request.setPayload(new CommandCloseRequestDto(eyesRef));
SyncTaskListener syncTaskListener = checkedCommand(request, waitResult);
if (!waitResult) {
return null;
}
ResponseDto> closeResponse = (ResponseDto>) syncTaskListener.get();
if (closeResponse != null && closeResponse.getPayload().getError() != null) {
String message = closeResponse.getPayload().getError().getMessage();
if (message != null && message.contains("stale element reference")) {
throw new StaleElementReferenceException(message);
}
throw new EyesException(message);
}
return closeResponse.getPayload().getResult();
}
public static RectangleSizeDto getViewportSize(DriverDto driver) {
RequestDto request = new RequestDto<>();
request.setName("Core.getViewportSize");
request.setKey(UUID.randomUUID().toString());
request.setPayload(new CommandGetViewportSizeRequestDto(driver));
SyncTaskListener syncTaskListener = checkedCommand(request, true);
ResponseDto getViewportSizeResponse = (ResponseDto) syncTaskListener.get();
return getViewportSizeResponse.getPayload().getResult();
}
public List closeAllEyes(Reference managerRef) {
RequestDto request = new RequestDto<>();
request.setName("EyesManager.closeAllEyes");
request.setKey(UUID.randomUUID().toString());
request.setPayload(new CommandCloseAllEyesRequestDto(managerRef));
SyncTaskListener syncTaskListener = checkedCommand(request, true);
ResponseDto> closeResponse = (ResponseDto>) syncTaskListener.get();
if (closeResponse != null && closeResponse.getPayload().getError() != null) {
String message = closeResponse.getPayload().getError().getMessage();
if (message != null && message.contains("stale element reference")) {
throw new StaleElementReferenceException(message);
}
throw new EyesException(message);
}
return closeResponse.getPayload().getResult();
}
public TestResultsSummaryDto closeManager(Reference managerRef, Boolean throwError) {
RequestDto request = new RequestDto<>();
request.setName("EyesManager.closeManager");
request.setKey(UUID.randomUUID().toString());
request.setPayload(new CommandCloseManagerRequestDto(managerRef, throwError));
SyncTaskListener syncTaskListener = checkedCommand(request, true);
ResponseDto closeResponse = (ResponseDto) syncTaskListener.get();
if (closeResponse != null && closeResponse.getPayload().getError() != null) {
String message = closeResponse.getPayload().getError().getMessage();
if (message != null && message.contains("stale element reference")) {
throw new StaleElementReferenceException(message);
}
throw new EyesException(message);
}
return closeResponse.getPayload().getResult();
}
public static SyncTaskListener checkedCommand(Command command, boolean waitResult) {
try {
return connection.executeCommand(command, waitResult);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}