vrijdag 16 december 2016

PhantomJS binnen Cucumber gebruiken?

In een eerdere post Cucumber-Java heb ik uitleg gegeven hoe je makkelijk eens Cucumber kan bekijken. Als aanvulling heb ik het nu ook mogelijk gemaakt om PhantomJS naast Chrome of FireFox te gebruiken. Het voordeel is dat testen uitvoeren doorgaans een stuk sneller gaan en op de achtergrond worden uitgevoerd zonder dat daarvoor een browserscherm voor hoeft geworden gestart.

Hiervoor kun je het volgende stappenplan doorlopen:

  1. Download en installeer PhantomJS
    1. Download install-phantomjs.sh (bron: GitHub)
    2. Open het gedownloade bestand in gedit
    3. Voer per stap het script uit in een terminal venster
  2. Zet versie 3.01 van selenium-java in je pom.xml binnen het project met IntelliJ 
    <dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>3.0.1</version>
    </dependency>
  3. Neem het volgende stukje code over in je SharedDriver.java bestand binnen het Cucumber-Java project binnen IntelliJ:
.....................................................
static {
    String browserName = System.getProperty("browser");
    if(browserName == null) {
        browserName = "phantomjs";
    }
    if(browserName.equals("firefox")) {
        REAL_DRIVER = new FirefoxDriver();
    }
    else if(browserName.equals("chrome")) {
        String pathToDriver = System.getProperty("pathToDriver");
        if(pathToDriver == null) {
            pathToDriver = "/usr/local/share/chromedriver";
        }
        System.setProperty("webdriver.chrome.driver", pathToDriver);
        REAL_DRIVER = new ChromeDriver();
    }

    else if(browserName.equals("phantomjs")) {
        String pathToDriver = System.getProperty("pathToDriver");
        if(pathToDriver == null) {
            pathToDriver = "/usr/local/share/phantomjs";
        }
        System.setProperty("webdriver.phantomjs.driver", pathToDriver);
        REAL_DRIVER = new PhantomJSDriver();
    }
..................


Geen opmerkingen:

Een reactie posten