From a305cbd1dbf9e580ebcb8dcd1744d371b6fcf6d4 Mon Sep 17 00:00:00 2001 From: Boris Osipov Date: Thu, 11 May 2017 21:47:38 +0300 Subject: [PATCH] #529 Cannot find capabilities with browserName=ie when grid hub url specified in -Dremote - Set correct correct IE browser name - Add ability to set ie browser through "internet explorer" string --- .../codeborne/selenide/WebDriverRunner.java | 4 +++- .../selenide/webdriver/WebDriverFactory.java | 3 ++- .../webdriver/InternetExplorerNamesTest.java | 22 +++++++++++++++++++ 3 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 src/test/java/com/codeborne/selenide/webdriver/InternetExplorerNamesTest.java diff --git a/src/main/java/com/codeborne/selenide/WebDriverRunner.java b/src/main/java/com/codeborne/selenide/WebDriverRunner.java index dd56fdbe8d..6db3423755 100644 --- a/src/main/java/com/codeborne/selenide/WebDriverRunner.java +++ b/src/main/java/com/codeborne/selenide/WebDriverRunner.java @@ -14,6 +14,7 @@ public class WebDriverRunner { public static final String CHROME = "chrome"; public static final String INTERNET_EXPLORER = "ie"; + public static final String IE_FULL_NAME = "internet explorer"; public static final String EDGE = "edge"; public static final String FIREFOX = "firefox"; /** @@ -175,7 +176,8 @@ public static boolean isChrome() { * Is Selenide configured to use Internet Explorer browser */ public static boolean isIE() { - return INTERNET_EXPLORER.equalsIgnoreCase(browser); + return INTERNET_EXPLORER.equalsIgnoreCase(browser) || IE_FULL_NAME + .equalsIgnoreCase(browser); } /** diff --git a/src/main/java/com/codeborne/selenide/webdriver/WebDriverFactory.java b/src/main/java/com/codeborne/selenide/webdriver/WebDriverFactory.java index f2249000b2..716daf43f2 100644 --- a/src/main/java/com/codeborne/selenide/webdriver/WebDriverFactory.java +++ b/src/main/java/com/codeborne/selenide/webdriver/WebDriverFactory.java @@ -2,6 +2,7 @@ import com.codeborne.selenide.Selenide; import com.codeborne.selenide.WebDriverProvider; +import com.codeborne.selenide.WebDriverRunner; import org.openqa.selenium.Capabilities; import org.openqa.selenium.Dimension; import org.openqa.selenium.Proxy; @@ -76,7 +77,7 @@ public WebDriver createWebDriver(Proxy proxy) { protected WebDriver createRemoteDriver(String remote, String browser, Proxy proxy) { try { DesiredCapabilities capabilities = createCommonCapabilities(proxy); - capabilities.setBrowserName(browser); + capabilities.setBrowserName(isIE() ? WebDriverRunner.IE_FULL_NAME : browser); return new RemoteWebDriver(new URL(remote), capabilities); } catch (MalformedURLException e) { throw new IllegalArgumentException("Invalid 'remote' parameter: " + remote, e); diff --git a/src/test/java/com/codeborne/selenide/webdriver/InternetExplorerNamesTest.java b/src/test/java/com/codeborne/selenide/webdriver/InternetExplorerNamesTest.java new file mode 100644 index 0000000000..52dd2eb51c --- /dev/null +++ b/src/test/java/com/codeborne/selenide/webdriver/InternetExplorerNamesTest.java @@ -0,0 +1,22 @@ +package com.codeborne.selenide.webdriver; + +import com.codeborne.selenide.Configuration; +import org.junit.Test; + +import static com.codeborne.selenide.WebDriverRunner.isIE; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.core.Is.is; + +public class InternetExplorerNamesTest { + @Test + public void internetExplorerShortNameTest() { + Configuration.browser = "ie"; + assertThat(isIE(), is(true)); + } + + @Test + public void internetExplorerFullNameTest() { + Configuration.browser = "internet explorer"; + assertThat(isIE(), is(true)); + } +}