Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,13 @@ public class Configuration implements IConfiguration{
private static ThreadLocal<Configuration> instance = ThreadLocal.withInitial(Configuration::new);
private final ITimeoutConfiguration timeoutConfiguration;
private final IBrowserProfile browserProfile;
private final ILoggerConfiguration loggerConfiguration;

private Configuration() {
JsonFile settings = getSettings();
timeoutConfiguration = new TimeoutConfiguration(settings);
browserProfile = new BrowserProfile(settings);
loggerConfiguration = new LoggerConfiguration(settings);
}

public static Configuration getInstance() {
Expand All @@ -31,6 +33,11 @@ public ITimeoutConfiguration getTimeoutConfiguration() {
return timeoutConfiguration;
}

@Override
public ILoggerConfiguration getLoggerConfiguration() {
return loggerConfiguration;
}

private JsonFile getSettings() {
String settingsProfile = System.getProperty("profile") == null ? "settings.json" : "settings." + System.getProperty("profile") + ".json";
try{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,6 @@ public interface IConfiguration {
IBrowserProfile getBrowserProfile();

ITimeoutConfiguration getTimeoutConfiguration();

ILoggerConfiguration getLoggerConfiguration();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package aquality.selenium.configuration;

import aquality.selenium.localization.SupportedLanguage;

public interface ILoggerConfiguration {

SupportedLanguage getLanguage();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package aquality.selenium.configuration;

import aquality.selenium.localization.SupportedLanguage;
import aquality.selenium.utils.JsonFile;

public class LoggerConfiguration implements ILoggerConfiguration{

private final JsonFile settingsFile;

public LoggerConfiguration(JsonFile settingsFile){
this.settingsFile = settingsFile;
}

@Override
public SupportedLanguage getLanguage() {
return SupportedLanguage.valueOf(settingsFile.getValue("/logger/language").toString().toUpperCase());
}
}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,26 +1,31 @@
package aquality.selenium.localization;

import aquality.selenium.configuration.PropertiesResourceManager;
import aquality.selenium.configuration.Configuration;
import aquality.selenium.utils.JsonFile;

public class LocalizationManager {
import java.io.IOException;
import java.io.UncheckedIOException;

private static final String LOC_DICT_PATH = "log/localization/%1$s.properties";
private static final PropertiesResourceManager LANG_PROPS = new PropertiesResourceManager("log/loglang.properties");
private static final String LOCALE_KEY = "logger.lang";
private final PropertiesResourceManager localManager;
public class LocalizationManager {

private final JsonFile localManager;
private static ThreadLocal<LocalizationManager> instance = ThreadLocal.withInitial(LocalizationManager::new);

private LocalizationManager(){
SupportedLocale locale = SupportedLocale.valueOf(LANG_PROPS.getProperty(LOCALE_KEY, SupportedLocale.EN.name()));
localManager = new PropertiesResourceManager(String.format(LOC_DICT_PATH, locale.name().toLowerCase()));
SupportedLanguage language = Configuration.getInstance().getLoggerConfiguration().getLanguage();
String translateDictFile = String.format("localization/%1$s.json", language.name().toLowerCase());
try{
localManager = new JsonFile(translateDictFile);
}catch (IOException e){
throw new UncheckedIOException("LocalizationManager was not instantiated. Localization file was not found by path " + translateDictFile, e);
}
}

public static LocalizationManager getInstance() {
return instance.get();
}

public String getValue(final String key) {
return localManager.getProperty(key, key);
return localManager.getValue("/" + key).toString();
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
package aquality.selenium.localization;

public enum SupportedLocale {
public enum SupportedLanguage {
EN,RU
}
2 changes: 1 addition & 1 deletion src/main/resources/js/autoAcceptAlerts.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,4 @@ window.alert = function(message) {
};
window.prompt = function(message) {
return true;
}
}
2 changes: 1 addition & 1 deletion src/main/resources/js/borderElement.js
Original file line number Diff line number Diff line change
@@ -1 +1 @@
arguments[0].style.border='3px solid red';
arguments[0].style.border='3px solid red';
2 changes: 1 addition & 1 deletion src/main/resources/js/clickElement.js
Original file line number Diff line number Diff line change
@@ -1 +1 @@
arguments[0].click();
arguments[0].click();
2 changes: 1 addition & 1 deletion src/main/resources/js/elementIsOnScreen.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ var rect = arguments[0].getBoundingClientRect();
return (
rect.top >= 0 && rect.left >= 0 && rect.bottom <= (
window.innerHeight || document.documentElement.clientHeight) && rect.right <= (window.innerWidth || document.documentElement.clientWidth)
);
);
2 changes: 1 addition & 1 deletion src/main/resources/js/getCheckBxState.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
return (function(element) {
return element.checked;
})(arguments[0]);
})(arguments[0]);
2 changes: 1 addition & 1 deletion src/main/resources/js/getCmbText.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
return (function(element) {
return element.options[element.selectedIndex].text;
})(arguments[0]);
})(arguments[0]);
6 changes: 3 additions & 3 deletions src/main/resources/js/getCmbValues.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
return (function(element) {
var array = new Array();
for(i = 0; i < element.length; i++)
var array = [];
for(var i = 0; i < element.length; i++)
{
array.push(element[i].text);
}
return array;
})(arguments[0]);
})(arguments[0]);
2 changes: 1 addition & 1 deletion src/main/resources/js/getElementByXpath.js
Original file line number Diff line number Diff line change
@@ -1 +1 @@
return document.evaluate(arguments[0], document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
return document.evaluate(arguments[0], document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
2 changes: 1 addition & 1 deletion src/main/resources/js/getElementText.js
Original file line number Diff line number Diff line change
@@ -1 +1 @@
return arguments[0].textContent
return arguments[0].textContent
6 changes: 3 additions & 3 deletions src/main/resources/js/getElementXPath.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
function WebElement_XPath(element) {
if (element.tagName == 'HTML') {
if (element.tagName === 'HTML') {
return '/html';
}
if (element===document.body) {
Expand All @@ -21,5 +21,5 @@ function WebElement_XPath(element) {
position++;
}
}
};
return WebElement_XPath(arguments[0]);
}
return WebElement_XPath(arguments[0]);
2 changes: 1 addition & 1 deletion src/main/resources/js/getScreenOffset.js
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
let clientRect = document.body.getBoundingClientRect();
return [clientRect.x, clientRect.y]
return [clientRect.x, clientRect.y]
2 changes: 1 addition & 1 deletion src/main/resources/js/getTextFirstChild.js
Original file line number Diff line number Diff line change
@@ -1 +1 @@
return arguments[0].firstChild.textContent;
return arguments[0].firstChild.textContent;
2 changes: 1 addition & 1 deletion src/main/resources/js/getViewPortCoordinates.js
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
let clientRect = arguments[0].getBoundingClientRect();
return [clientRect.left, clientRect.top]
return [clientRect.left, clientRect.top]
2 changes: 1 addition & 1 deletion src/main/resources/js/isPageLoaded.js
Original file line number Diff line number Diff line change
@@ -1 +1 @@
return document['readyState'] ? 'complete' == document.readyState : true
return document['readyState'] ? 'complete' === document.readyState : true
2 changes: 1 addition & 1 deletion src/main/resources/js/mouseHover.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@ if(document.createEvent){
}
else if(document.createEventObject) {
arguments[0].fireEvent('onmouseover');
}
}
2 changes: 1 addition & 1 deletion src/main/resources/js/scrollBy.js
Original file line number Diff line number Diff line change
@@ -1 +1 @@
arguments[0].scrollBy(arguments[1],arguments[2])
arguments[0].scrollBy(arguments[1],arguments[2])
2 changes: 1 addition & 1 deletion src/main/resources/js/scrollToBottom.js
Original file line number Diff line number Diff line change
@@ -1 +1 @@
window.scrollTo(0,Math.max(document.documentElement.scrollHeight,document.body.scrollHeight,document.documentElement.clientHeight));
window.scrollTo(0,Math.max(document.documentElement.scrollHeight,document.body.scrollHeight,document.documentElement.clientHeight));
2 changes: 1 addition & 1 deletion src/main/resources/js/scrollToElement.js
Original file line number Diff line number Diff line change
@@ -1 +1 @@
arguments[0].scrollIntoView(arguments[1]);
arguments[0].scrollIntoView(arguments[1]);
2 changes: 1 addition & 1 deletion src/main/resources/js/scrollToElementCenter.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
var viewPortHeight = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);
var elementTop = arguments[0].getBoundingClientRect().top;
window.scrollBy(0, elementTop-(viewPortHeight/2));
window.scrollBy(0, elementTop-(viewPortHeight/2));
2 changes: 1 addition & 1 deletion src/main/resources/js/scrollToTop.js
Original file line number Diff line number Diff line change
@@ -1 +1 @@
window.scrollTo(0, 0);
window.scrollTo(0, 0);
2 changes: 1 addition & 1 deletion src/main/resources/js/scrollWindowBy.js
Original file line number Diff line number Diff line change
@@ -1 +1 @@
window.scrollBy(arguments[0],arguments[1])
window.scrollBy(arguments[0],arguments[1])
2 changes: 1 addition & 1 deletion src/main/resources/js/selectComboboxValueByText.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,4 @@ if ("createEvent" in document) {
arguments[0].dispatchEvent(evt);
} else {
arguments[0].fireEvent("onchange");
}
}
2 changes: 1 addition & 1 deletion src/main/resources/js/setFocus.js
Original file line number Diff line number Diff line change
@@ -1 +1 @@
arguments[0].focus();
arguments[0].focus();
2 changes: 1 addition & 1 deletion src/main/resources/js/setInnerHTML.js
Original file line number Diff line number Diff line change
@@ -1 +1 @@
arguments[0].innerHTML=arguments[1]
arguments[0].innerHTML=arguments[1]
2 changes: 1 addition & 1 deletion src/main/resources/js/setValue.js
Original file line number Diff line number Diff line change
@@ -1 +1 @@
arguments[0].value=arguments[1]
arguments[0].value=arguments[1]
56 changes: 56 additions & 0 deletions src/main/resources/localization/en.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
{
"loc.browser.arguments.setting" : "Setting browser start arguments from JSON file: %s",
"loc.browser.back" : "Return to previous page",
"loc.browser.forward" : "Proceed to the next page",
"loc.browser.caps.setting" : "Setting browser capabilities from JSON file: %s",
"loc.browser.config.setting" : "Setting browser profile options from JSON file: %s",
"loc.browser.driver.quit" : "Closing browser",
"loc.browser.getUrl" : "Getting current url",
"loc.browser.grid" : "Setting webdriver from selenium grid hub",
"loc.browser.grid.fail" : "Driver setting from Selenium Grid hub was failed",
"loc.browser.maximize" : "Maximizing browser window",
"loc.browser.name.wrong" : "Browser name is wrong.",
"loc.browser.navigate" : "Navigate to url - '%s'",
"loc.browser.page.timeout" : "Page loading timed out",
"loc.browser.ready" : "Browser '%1$s' ready...",
"loc.browser.refresh" : "Refreshing the page",
"loc.browser.alert.fail" : "Failed while handling alert",
"loc.element.wasnotfoundinstate" : "Element '%1$s' was not found in state %2$s during %3$s seconds",
"loc.button" : "Button",
"loc.checkbox" : "CheckBox",
"loc.checkbox.check" : "Checking the '%s' %s with value: %s\"",
"loc.checkbox.get.state" : "Getting state",
"loc.checkbox.uncheck" : "Checking the '%s' %s with value: %s\"",
"loc.clicking" : "Clicking",
"loc.clicking.double" : "Clicking double",
"loc.clicking.js" : "Clicking via Javascript",
"loc.clicking.right" : "Clicking right",
"loc.combobox" : "ComboBox",
"loc.combobox.select.by.text" : "Selecting value by text '%s'",
"loc.combobox.get.values" : "Getting values array",
"loc.el.getattr" : "Getting attribute '%1$s'",
"loc.file.reading_exception" : "Exception while reading file: '%s'",
"loc.focusing" : "Focusing",
"loc.get.text" : "Getting text from element",
"loc.get.text.js" : "Getting text from element via Javascript",
"loc.hover.js" : "Hover mouse over element via JavaScript",
"loc.is.present.js" : "Is present via JavaScript",
"loc.label" : "Label",
"loc.link" : "Link",
"loc.moving" : "Moving mouse to element",
"loc.radio" : "RadioButton",
"loc.scrolling.center.js" : "Scrolling to the center via JavaScript",
"loc.scrolling.js" : "Scrolling via JavaScript",
"loc.selecting.value" : "Selecting value",
"loc.send.text" : "Setting text - '%s'",
"loc.setting.value" : "Setting value",
"loc.text.clearing" : "Clearing",
"loc.text.field" : "Text Field",
"loc.text.sending.keys" : "Sending keys '%s'",
"loc.text.typing" : "Typing '%s'",
"loc.text.masked_value" : "********",
"loc.waitexists" : "Wait until element exists in DOM",
"loc.waitinstate" : "Wait until is present in state %1$s using \"locator\": %2$s",
"loc.waitinvisible" : "Wait until element is not visible",
"loc.waitnotexists" : "Wait until element does not exist in DOM during %1$s seconds"
}
Loading