diff --git a/site/dat/wiki/Changelog.wiki b/site/dat/wiki/Changelog.wiki index cbcba4077..258d73989 100644 --- a/site/dat/wiki/Changelog.wiki +++ b/site/dat/wiki/Changelog.wiki @@ -7,6 +7,7 @@ * fix scheduling bug in TST for sub-rps load * fixed permission-denied-error on unix systems in LoadosophiaUploader-reporter when no storeDir is set * bump up Selenium dependency to 2.47.0 + * add basic PhantomJS (GhostDriver) capability to Remote WebDriver == 1.3.0 June 30, 2015== * Java 7 or higher required diff --git a/site/dat/wiki/Contributors.wiki b/site/dat/wiki/Contributors.wiki index f59b73b1c..3b045b922 100644 --- a/site/dat/wiki/Contributors.wiki +++ b/site/dat/wiki/Contributors.wiki @@ -18,3 +18,4 @@ Everyone who provided pull request or other contribution, deserves mentioning on * Jorge S. Cruz - added [RemoteDriverConfig] for connecting to a Selenium Grid * Roy de Kleijn - added NTLM and Internet Explorer support * Erik Ostermueller - added support for changing line & legend colors. + * Flávio Cysne - added PhantomJS option to [RemoteCapability] enabling connection to a PhantomJS node in a Selenium Grid diff --git a/webdriver/pom.xml b/webdriver/pom.xml index d685fb30d..9abf34ab7 100644 --- a/webdriver/pom.xml +++ b/webdriver/pom.xml @@ -127,6 +127,28 @@ --> + + + com.github.detro + phantomjsdriver + 1.2.0 + + + org.seleniumhq.selenium + selenium-java + + + org.seleniumhq.selenium + selenium-remote-driver + + + + + cglib + cglib-nodep + 2.1_3 + + de.sciss jsyntaxpane @@ -269,7 +291,8 @@ true selenium-support,selenium-api,selenium-remote-driver,selenium-ie-driver,selenium-firefox-driver,selenium-chrome-driver,selenium-htmlunit-driver,gson, - guava,json,commons-exec,jsyntaxpane,htmlunit,htmlunit-core-js,nekohtml,cssparser,jetty-websocket,sac,httpclient,httpmime,httpcore + guava,json,commons-exec,jsyntaxpane,htmlunit,htmlunit-core-js,nekohtml,cssparser,jetty-websocket,sac,httpclient,httpmime,httpcore, + cglib-nodep,phantomjsdriver diff --git a/webdriver/src/com/googlecode/jmeter/plugins/webdriver/config/RemoteCapability.java b/webdriver/src/com/googlecode/jmeter/plugins/webdriver/config/RemoteCapability.java index 50a4b3d89..9b0c8558a 100644 --- a/webdriver/src/com/googlecode/jmeter/plugins/webdriver/config/RemoteCapability.java +++ b/webdriver/src/com/googlecode/jmeter/plugins/webdriver/config/RemoteCapability.java @@ -3,5 +3,6 @@ public enum RemoteCapability { CHROME, FIREFOX, - INTERNET_EXPLORER + INTERNET_EXPLORER, + PHANTOMJS } diff --git a/webdriver/src/com/googlecode/jmeter/plugins/webdriver/config/RemoteDesiredCapabilitiesFactory.java b/webdriver/src/com/googlecode/jmeter/plugins/webdriver/config/RemoteDesiredCapabilitiesFactory.java index 859a46727..416ad129b 100644 --- a/webdriver/src/com/googlecode/jmeter/plugins/webdriver/config/RemoteDesiredCapabilitiesFactory.java +++ b/webdriver/src/com/googlecode/jmeter/plugins/webdriver/config/RemoteDesiredCapabilitiesFactory.java @@ -22,6 +22,9 @@ public static DesiredCapabilities build(RemoteCapability capability){ } else if (RemoteCapability.INTERNET_EXPLORER.equals(capability)){ desiredCapabilities = DesiredCapabilities.internetExplorer(); return desiredCapabilities; + } else if (RemoteCapability.PHANTOMJS.equals(capability)){ + desiredCapabilities = DesiredCapabilities.phantomjs(); + return desiredCapabilities; } throw new IllegalArgumentException("No such capability"); } diff --git a/webdriver/test/com/googlecode/jmeter/plugins/webdriver/config/RemoteDesiredCapabilitiesFactoryTest.java b/webdriver/test/com/googlecode/jmeter/plugins/webdriver/config/RemoteDesiredCapabilitiesFactoryTest.java index 04bb49666..0a0757fe3 100644 --- a/webdriver/test/com/googlecode/jmeter/plugins/webdriver/config/RemoteDesiredCapabilitiesFactoryTest.java +++ b/webdriver/test/com/googlecode/jmeter/plugins/webdriver/config/RemoteDesiredCapabilitiesFactoryTest.java @@ -10,26 +10,33 @@ import static org.hamcrest.CoreMatchers.notNullValue; public class RemoteDesiredCapabilitiesFactoryTest { - + @Test public void shouldReturnFirefoxDriverWhenFirefoxCapabilityIsPassed() throws Exception { DesiredCapabilities capabilities = RemoteDesiredCapabilitiesFactory.build(RemoteCapability.FIREFOX); assertThat(capabilities.getCapability(FirefoxDriver.PROFILE), is(notNullValue())); assertThat(capabilities.getBrowserName(), is("firefox")); } - + @Test public void shouldReturnChromeDriverWhenChromeCapabilityIsPassed() throws Exception { DesiredCapabilities capabilities = RemoteDesiredCapabilitiesFactory.build(RemoteCapability.CHROME); assertThat(capabilities.getCapability(ChromeOptions.CAPABILITY), is(notNullValue())); assertThat(capabilities.getBrowserName(), is("chrome")); } - + @Test - public void shouldReturnInternetExplorerDriverWhenChromeCapabilityIsPassed() throws Exception { + public void shouldReturnInternetExplorerDriverWhenInternetExplorerCapabilityIsPassed() throws Exception { DesiredCapabilities capabilities = RemoteDesiredCapabilitiesFactory.build(RemoteCapability.INTERNET_EXPLORER); assertThat(capabilities.getBrowserName(), is("internet explorer")); } + + @Test + public void shouldReturnPhantomJSDriverWhenPhantomJSCapabilityIsPassed() throws Exception { + DesiredCapabilities capabilities = RemoteDesiredCapabilitiesFactory.build(RemoteCapability.PHANTOMJS); + assertThat(capabilities.getBrowserName(), is("phantomjs")); + } + @Test(expected = IllegalArgumentException.class) public void shouldThrowAnExceptionWhenAnInvalidCapabilityIsPassed() throws Exception { RemoteDesiredCapabilitiesFactory.build(null); diff --git a/webdriver/test/com/googlecode/jmeter/plugins/webdriver/config/RemoteDriverConfigTest.java b/webdriver/test/com/googlecode/jmeter/plugins/webdriver/config/RemoteDriverConfigTest.java index 00d8b2596..06815a17d 100644 --- a/webdriver/test/com/googlecode/jmeter/plugins/webdriver/config/RemoteDriverConfigTest.java +++ b/webdriver/test/com/googlecode/jmeter/plugins/webdriver/config/RemoteDriverConfigTest.java @@ -60,6 +60,8 @@ public void shouldSetTheCapability() throws Exception { assertThat(config.getCapability(), is(RemoteCapability.FIREFOX)); config.setCapability(RemoteCapability.INTERNET_EXPLORER); assertThat(config.getCapability(), is(RemoteCapability.INTERNET_EXPLORER)); + config.setCapability(RemoteCapability.PHANTOMJS); + assertThat(config.getCapability(), is(RemoteCapability.PHANTOMJS)); } @Test