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

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -69,10 +69,10 @@ script:
- mvn verify -B -Dthreads=1 -Dconfig=FirefoxGrid.yaml

# Firefox off the grid
- mvn verify -B -Dthreads=${THREAD_COUNT} -Dbrowser=firefox -DreuseBrowser=true -Dit.test=TheInternetExampleTests 2> /dev/null
- mvn verify -B -Dthreads=${THREAD_COUNT} -Dbrowser=firefox -DreuseBrowser=true -Dheadless=true -Dit.test=TheInternetExampleTests 2> /dev/null

# Chrome on the grid
- mvn verify -B -Dthreads=${THREAD_COUNT} -Dbrowser=chrome -DreuseBrowser=true -DgridURL=http://localhost:4444/wd/hub #-DcaptureURL=${CAPTURE_URL} -DsutName="${SUT_NAME}" -DsutVersion="${SUT_VERSION}"
- mvn verify -B -Dthreads=${THREAD_COUNT} -Dbrowser=chrome -DreuseBrowser=true -Dheadless=true -DgridURL=http://localhost:4444/wd/hub #-DcaptureURL=${CAPTURE_URL} -DsutName="${SUT_NAME}" -DsutVersion="${SUT_VERSION}"

# Custom Browser Impl
- mvn verify -B -Dthreads=${THREAD_COUNT} -DcustomBrowserImpl=CustomFirefoxImpl -Dit.test=DocumentationTest 2> /dev/null
Expand Down
15 changes: 0 additions & 15 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -53,21 +53,6 @@
<artifactId>selenium-java</artifactId>
<version>3.8.1</version>
</dependency>
<dependency>
<groupId>com.codeborne</groupId>
<artifactId>phantomjsdriver</artifactId>
<version>1.4.3</version>
<exclusions>
<exclusion>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-remote-driver</artifactId>
</exclusion>
<exclusion>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-server</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
Expand Down
28 changes: 17 additions & 11 deletions src/main/java/com/frameworkium/core/common/properties/Property.java
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,8 @@ public enum Property {
CHROME_USER_DATA_DIR("chromeUserDataDir"),
CUSTOM_BROWSER_IMPL("customBrowserImpl"),
REUSE_BROWSER("reuseBrowser"),
THREADS("threads");
THREADS("threads"),
HEADLESS("headless");

private static Map configMap = null;
private String value;
Expand Down Expand Up @@ -84,16 +85,6 @@ private void loadConfigFile() {
}
}

/**
* Check if a browser needs to be maximised.
*
* @return true if the maximise property is equal, ignoring case, to "true"
*/
public static boolean wantToMaximise() {
return MAXIMISE.isSpecified()
&& Boolean.parseBoolean(MAXIMISE.getValue());
}

/**
* Check if a property is specified.
*
Expand All @@ -107,6 +98,16 @@ public String getValue() {
return value;
}

/**
* Check if a browser needs to be maximised.
*
* @return true if the maximise property is equal, ignoring case, to "true"
*/
public static boolean wantToMaximise() {
return MAXIMISE.isSpecified()
&& Boolean.parseBoolean(MAXIMISE.getValue());
}

/**
* Check if all properties required for integration with Capture are defined.
*
Expand All @@ -126,4 +127,9 @@ public static int getThreadCount() {
? Integer.parseInt(THREADS.getValue())
: 1;
}

public static boolean isHeadlessRun() {
return HEADLESS.isSpecified()
&& "true".equalsIgnoreCase(HEADLESS.getValue());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ public class DriverSetup {

/** Supported drivers. */
public enum Browser {
FIREFOX, LEGACYFIREFOX, CHROME, OPERA, IE, PHANTOMJS, SAFARI, ELECTRON, CUSTOM
FIREFOX, LEGACYFIREFOX, CHROME, OPERA, IE, SAFARI, ELECTRON, CUSTOM
}

/** Supported remote grids. */
Expand Down Expand Up @@ -78,8 +78,6 @@ private Driver createDriverImpl(Browser browser) {
return new OperaImpl();
case IE:
return new InternetExplorerImpl();
case PHANTOMJS:
return new PhantomJSImpl();
case SAFARI:
return new SafariImpl();
case ELECTRON:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ public BrowserStackImpl(Platform platform, Capabilities browserCapabilities) {
}
}

/** {@inheritDoc} */
@Override
public Capabilities getCapabilities() {
MutableCapabilities capabilities = getCapabilitiesBasedOnPlatform();
capabilities.setCapability("browserstack.debug", true);
Expand Down Expand Up @@ -89,6 +89,7 @@ private MutableCapabilities getDesktopCapability() {
return mutableCapabilities;
}

@Override
public WebDriver getWebDriver(Capabilities capabilities) {
return new RemoteWebDriver(remoteURL, capabilities);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
public class ChromeImpl extends AbstractDriver {

@Override
public Capabilities getCapabilities() {
public ChromeOptions getCapabilities() {
ChromeOptions chromeOptions = new ChromeOptions();
// useful defaults
chromeOptions.setCapability(
Expand All @@ -35,13 +35,19 @@ public Capabilities getCapabilities() {
chromeOptions.addArguments(
"user-data-dir=" + Property.CHROME_USER_DATA_DIR.getValue());
}

chromeOptions.setHeadless(Property.isHeadlessRun());
return chromeOptions;
}

@Override
public WebDriver getWebDriver(Capabilities capabilities) {
return new ChromeDriver(new ChromeOptions().merge(capabilities));
final ChromeOptions chromeOptions;
if (capabilities instanceof ChromeOptions) {
chromeOptions = (ChromeOptions) capabilities;
} else {
chromeOptions = new ChromeOptions().merge(capabilities);
}
return new ChromeDriver(chromeOptions);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ public class ElectronImpl extends AbstractDriver {
}

@Override
public Capabilities getCapabilities() {
public ChromeOptions getCapabilities() {
if (!APP_PATH.isSpecified()) {
throw new IllegalStateException(
"App path must be specified when using Electron!");
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.frameworkium.core.ui.driver.drivers;

import com.frameworkium.core.common.properties.Property;
import com.frameworkium.core.ui.driver.AbstractDriver;
import org.openqa.selenium.Capabilities;
import org.openqa.selenium.WebDriver;
Expand All @@ -9,12 +10,20 @@
public class FirefoxImpl extends AbstractDriver {

@Override
public Capabilities getCapabilities() {
return new FirefoxOptions();
public FirefoxOptions getCapabilities() {
FirefoxOptions firefoxOptions = new FirefoxOptions();
firefoxOptions.setHeadless(Property.isHeadlessRun());
return firefoxOptions;
}

@Override
public WebDriver getWebDriver(Capabilities capabilities) {
return new FirefoxDriver(new FirefoxOptions(capabilities));
final FirefoxOptions firefoxOptions;
if (capabilities instanceof FirefoxOptions) {
firefoxOptions = (FirefoxOptions) capabilities;
} else {
firefoxOptions = new FirefoxOptions().merge(capabilities);
}
return new FirefoxDriver(firefoxOptions);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ public GridImpl(Capabilities capabilities) {
}
}

/** {@inheritDoc} */
@Override
public Capabilities getCapabilities() {
MutableCapabilities mutableCapabilities = new MutableCapabilities(capabilities);
if (BROWSER_VERSION.isSpecified()) {
Expand All @@ -42,6 +42,7 @@ public Capabilities getCapabilities() {
return mutableCapabilities;
}

@Override
public WebDriver getWebDriver(Capabilities capabilities) {
return new RemoteWebDriver(remoteURL, capabilities);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
public class InternetExplorerImpl extends AbstractDriver {

@Override
public Capabilities getCapabilities() {
public InternetExplorerOptions getCapabilities() {
InternetExplorerOptions ieOptions = new InternetExplorerOptions();
ieOptions.setCapability(CapabilityType.ForSeleniumServer.ENSURING_CLEAN_SESSION, true);
ieOptions.setCapability(InternetExplorerDriver.ENABLE_PERSISTENT_HOVERING, true);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
package com.frameworkium.core.ui.driver.drivers;

import org.openqa.selenium.Capabilities;
import org.openqa.selenium.firefox.FirefoxOptions;

public class LegacyFirefoxImpl extends FirefoxImpl {

@Override
public Capabilities getCapabilities() {
public FirefoxOptions getCapabilities() {
FirefoxOptions firefoxOptions = new FirefoxOptions();
firefoxOptions.setLegacy(true);
return firefoxOptions;
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
public class SafariImpl extends AbstractDriver {

@Override
public Capabilities getCapabilities() {
public SafariOptions getCapabilities() {
if (Driver.isMobile()) {
return new SafariOptions();
} else {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ public SauceImpl(Platform platform, Capabilities capabilities) {
}
}

/** {@inheritDoc} */
@Override
public Capabilities getCapabilities() {
MutableCapabilities mutableCapabilities;
if (Driver.isNative()) {
Expand All @@ -47,6 +47,7 @@ public Capabilities getCapabilities() {
return mutableCapabilities;
}

@Override
public WebDriver getWebDriver(Capabilities capabilities) {
return new RemoteWebDriver(remoteURL, capabilities);
}
Expand Down
33 changes: 33 additions & 0 deletions src/main/resources/Empty.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
applicationName:
appPath:
browser:
browserStack:
browserVersion:
build:
captureURL:
chromeUserDataDir:
customBrowserImpl:
device:
gridURL:
headless:
jiraPassword:
jiraResultFieldName:
jiraResultTransition:
jiraURL:
jiraUsername:
jqlQuery:
maximise:
maxRetryCount:
platform:
platformVersion:
proxy:
resolution:
resultVersion:
reuseBrowser:
sauce:
spiraURL:
sutName:
sutVersion:
threads:
videoCaptureUrl:
zapiCycleRegEx:
39 changes: 21 additions & 18 deletions src/main/resources/Firefox.yaml
Original file line number Diff line number Diff line change
@@ -1,27 +1,30 @@
applicationName:
appPath:
browser: Firefox
firefoxProfile:
browserStack:
browserVersion:
platform:
platformVersion:
device:
build:
captureURL:
device:
firefoxProfile:
gridURL:
build:
appPath:
sauce:
browserStack:
jiraURL:
spiraURL:
resultVersion:
zapiCycleRegEx:
jqlQuery:
sutName:
sutVersion:
headless:
jiraPassword:
jiraResultFieldName:
jiraResultTransition:
jiraURL:
jiraUsername:
jiraPassword:
jqlQuery:
maximise:
resolution:
proxy:
maxRetryCount:
platform:
platformVersion:
proxy:
resolution:
resultVersion:
reuseBrowser:
sauce:
spiraURL:
sutName:
sutVersion:
zapiCycleRegEx:
Loading