All Downloads are FREE. Search and download functionalities are using the official Maven repository.

se.redmind.rmtest.config.PhantomJSConfiguration Maven / Gradle / Ivy

There is a newer version: 2.8.3
Show newest version
package se.redmind.rmtest.config;

import java.util.ArrayList;

import org.openqa.selenium.phantomjs.PhantomJSDriver;
import org.openqa.selenium.phantomjs.PhantomJSDriverService;
import org.openqa.selenium.remote.DesiredCapabilities;

import com.fasterxml.jackson.annotation.JsonTypeName;
import com.google.common.base.Strings;

import se.redmind.utils.NodeModules;
import se.redmind.utils.TestHome;

/**
 * @author Jeremy Comte
 */
@JsonTypeName("phantomjs")
public class PhantomJSConfiguration extends LocalConfiguration {

    public PhantomJSConfiguration() {
        super(createPhantomJSCapabilities(), capabilities -> new PhantomJSDriver(capabilities));
    }

    public static DesiredCapabilities createPhantomJSCapabilities() {
        DesiredCapabilities capabilities = new DesiredCapabilities();
        ArrayList cliArgs = new ArrayList<>();
        cliArgs.add("--ignore-ssl-errors=true");
        cliArgs.add("--ssl-protocol=any");
        cliArgs.add("--webdriver-loglevel=ERROR");
        capabilities.setCapability("takesScreenshot", true);
        capabilities.setCapability("browserName", "PhantomJS");
        if (Strings.isNullOrEmpty(System.getProperty(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY))) {
            if (!TestHome.isWindows()) {
                capabilities.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY, NodeModules.path() + "/phantomjs/lib/phantom/bin/phantomjs");
            } else {
                capabilities.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY, TestHome.get() + "/node_modules/phantomjs/lib/phantom/phantomjs.exe");
            }
        }
        capabilities.setCapability(PhantomJSDriverService.PHANTOMJS_PAGE_SETTINGS_PREFIX + "loadImages", true);
        capabilities.setCapability(PhantomJSDriverService.PHANTOMJS_PAGE_SETTINGS_PREFIX + "javascriptEnabled", true);
        capabilities.setCapability(PhantomJSDriverService.PHANTOMJS_PAGE_SETTINGS_PREFIX + "userAgent",
            "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.155 Safari/537.36 s");
        capabilities.setCapability(PhantomJSDriverService.PHANTOMJS_CLI_ARGS, cliArgs);
        return capabilities;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy