Skip to content

Commit 36f3c4b

Browse files
Merge pull request #119 from aquality-automation/breaking/add-visualization
[Feature] [Breaking] Visualization
2 parents 683fbcb + 0ca9590 commit 36f3c4b

File tree

22 files changed

+140
-46
lines changed

22 files changed

+140
-46
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@ downloads
55
# Log file
66
*.log
77

8+
# Visualization files
9+
visualDumps/
10+
811
# BlueJ files
912
*.ctxt
1013

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ Alternatively, you can follow the steps below:
2222
<dependency>
2323
<groupId>com.github.aquality-automation</groupId>
2424
<artifactId>aquality-selenium</artifactId>
25-
<version>3.x.x</version>
25+
<version>4.x.x</version>
2626
</dependency>
2727
```
2828

pom.xml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>com.github.aquality-automation</groupId>
88
<artifactId>aquality-selenium</artifactId>
9-
<version>3.2.1</version>
9+
<version>4.0.0</version>
1010
<packaging>jar</packaging>
1111
<name>Aquality Selenium</name>
1212
<description>Library around Selenium WebDriver</description>
@@ -81,19 +81,19 @@
8181
<dependency>
8282
<groupId>com.github.aquality-automation</groupId>
8383
<artifactId>aquality-selenium-core</artifactId>
84-
<version>2.0.6</version>
84+
<version>3.0.0</version>
8585
</dependency>
8686

8787
<dependency>
8888
<groupId>io.github.bonigarcia</groupId>
8989
<artifactId>webdrivermanager</artifactId>
90-
<version>5.3.1</version>
90+
<version>5.3.2</version>
9191
</dependency>
9292

9393
<dependency>
9494
<groupId>com.fasterxml.jackson.core</groupId>
9595
<artifactId>jackson-databind</artifactId>
96-
<version>2.14.1</version>
96+
<version>2.14.2</version>
9797
</dependency>
9898

9999
<dependency>

src/main/java/aquality/selenium/configuration/Configuration.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import aquality.selenium.core.configurations.IElementCacheConfiguration;
44
import aquality.selenium.core.configurations.ILoggerConfiguration;
55
import aquality.selenium.core.configurations.IRetryConfiguration;
6+
import aquality.selenium.core.configurations.IVisualizationConfiguration;
67
import com.google.inject.Inject;
78

89
public class Configuration implements IConfiguration {
@@ -12,16 +13,18 @@ public class Configuration implements IConfiguration {
1213
private final IBrowserProfile browserProfile;
1314
private final ILoggerConfiguration loggerConfiguration;
1415
private final IElementCacheConfiguration elementCacheConfiguration;
16+
private final IVisualizationConfiguration visualizationConfiguration;
1517

1618
@Inject
1719
public Configuration(ITimeoutConfiguration timeoutConfiguration, IRetryConfiguration retryConfiguration,
1820
IBrowserProfile browserProfile, ILoggerConfiguration loggerConfiguration,
19-
IElementCacheConfiguration elementCacheConfiguration) {
21+
IElementCacheConfiguration elementCacheConfiguration, IVisualizationConfiguration visualizationConfiguration) {
2022
this.timeoutConfiguration = timeoutConfiguration;
2123
this.retryConfiguration = retryConfiguration;
2224
this.browserProfile = browserProfile;
2325
this.loggerConfiguration = loggerConfiguration;
2426
this.elementCacheConfiguration = elementCacheConfiguration;
27+
this.visualizationConfiguration = visualizationConfiguration;
2528
}
2629

2730
@Override
@@ -48,4 +51,9 @@ public ILoggerConfiguration getLoggerConfiguration() {
4851
public IElementCacheConfiguration getElementCacheConfiguration() {
4952
return elementCacheConfiguration;
5053
}
54+
55+
@Override
56+
public IVisualizationConfiguration getVisualizationConfiguration() {
57+
return visualizationConfiguration;
58+
}
5159
}

src/main/java/aquality/selenium/configuration/IConfiguration.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import aquality.selenium.core.configurations.IElementCacheConfiguration;
44
import aquality.selenium.core.configurations.ILoggerConfiguration;
55
import aquality.selenium.core.configurations.IRetryConfiguration;
6+
import aquality.selenium.core.configurations.IVisualizationConfiguration;
67

78
/**
89
* Describes tool configuration.
@@ -43,4 +44,11 @@ public interface IConfiguration {
4344
* @return Configuration of element caching.
4445
*/
4546
IElementCacheConfiguration getElementCacheConfiguration();
47+
48+
/**
49+
* Gets configuration of VisualStateProvider and Dump manager.
50+
*
51+
* @return Visualization configuration.
52+
*/
53+
IVisualizationConfiguration getVisualizationConfiguration();
4654
}

src/main/java/aquality/selenium/configuration/TimeoutConfiguration.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ private enum TIMEOUT {
3737
SCRIPT("timeoutScript"),
3838
PAGE_LOAD("timeoutPageLoad");
3939

40-
private String key;
40+
private final String key;
4141

4242
TIMEOUT(String key) {
4343
this.key = key;

src/main/java/aquality/selenium/configuration/driversettings/ChromeSettings.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,11 @@ private void setChromeArgs(ChromeOptions options) {
4242
for (String arg : getBrowserStartArguments()) {
4343
options.addArguments(arg);
4444
}
45+
// workaround for Selenium issue https://github.com/SeleniumHQ/selenium/issues/11750
46+
final String allowOriginsArgument = "--remote-allow-origins=*";
47+
if (!getBrowserStartArguments().contains(allowOriginsArgument)) {
48+
options.addArguments(allowOriginsArgument);
49+
}
4550
}
4651

4752
@Override

src/main/java/aquality/selenium/elements/Element.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import aquality.selenium.core.localization.ILocalizationManager;
1313
import aquality.selenium.core.localization.ILocalizedLogger;
1414
import aquality.selenium.core.utilities.IElementActionRetrier;
15+
import aquality.selenium.core.visualization.IImageComparator;
1516
import aquality.selenium.core.waitings.IConditionalWait;
1617
import aquality.selenium.elements.actions.JsActions;
1718
import aquality.selenium.elements.actions.MouseActions;
@@ -64,6 +65,11 @@ void setElementFinder(IElementFinder elementFinder) {
6465
this.elementFinder = elementFinder;
6566
}
6667

68+
@Override
69+
protected IImageComparator getImageComparator() {
70+
return AqualityServices.get(IImageComparator.class);
71+
}
72+
6773
@Override
6874
protected IElementCacheConfiguration getElementCacheConfiguration() {
6975
return AqualityServices.get(IElementCacheConfiguration.class);
@@ -79,6 +85,7 @@ protected ILocalizedLogger getLocalizedLogger() {
7985
return AqualityServices.getLocalizedLogger();
8086
}
8187

88+
@Override
8289
protected ILocalizationManager getLocalizationManager() {
8390
return AqualityServices.get(ILocalizationManager.class);
8491
}

src/main/java/aquality/selenium/elements/ElementStateProvider.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import aquality.selenium.core.elements.DefaultElementStateProvider;
44
import aquality.selenium.core.elements.interfaces.IElementFinder;
5-
import aquality.selenium.core.elements.interfaces.ILogElementState;
5+
import aquality.selenium.core.logging.ILogElementState;
66
import aquality.selenium.core.waitings.IConditionalWait;
77
import org.openqa.selenium.By;
88
import org.openqa.selenium.WebElement;

src/main/java/aquality/selenium/elements/ElementType.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,14 @@ public enum ElementType {
1111
RADIOBUTTON(IRadioButton.class),
1212
TEXTBOX(ITextBox.class);
1313

14-
private Class<? extends IElement> clazz;
14+
private final Class<? extends IElement> clazz;
1515

1616
<T extends IElement> ElementType(Class<T> clazz){
1717
this.clazz = clazz;
1818
}
1919

2020
public <T extends IElement> Class<T> getClazz() {
21+
//noinspection unchecked
2122
return (Class<T>) clazz;
2223
}
2324
}

0 commit comments

Comments
 (0)