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
12 changes: 9 additions & 3 deletions src/SeleniumLibrary/keywords/webdrivertools.py
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,8 @@ def _parse_capabilities(self, capabilities):
def create_chrome(self, desired_capabilities, remote_url, options=None):
default = webdriver.DesiredCapabilities.CHROME
if is_truthy(remote_url):
return self._remote(default, desired_capabilities, remote_url)
return self._remote(default, desired_capabilities, remote_url,
options=options)
capabilities = self._combine_capabilites(default, desired_capabilities)
if SELENIUM_VERSION.major >= 3 and SELENIUM_VERSION.minor >= 8:
return webdriver.Chrome(desired_capabilities=capabilities,
Expand All @@ -97,7 +98,8 @@ def create_firefox(self, desired_capabilities, remote_url, ff_profile_dir,
default = webdriver.DesiredCapabilities.FIREFOX
profile = self._get_ff_profile(ff_profile_dir)
if is_truthy(remote_url):
return self._remote(default, desired_capabilities, remote_url, profile)
return self._remote(default, desired_capabilities, remote_url,
profile, options)
capabilities = self._combine_capabilites(default, desired_capabilities)
if SELENIUM_VERSION.major >= 3 and SELENIUM_VERSION.minor >= 8:
return webdriver.Firefox(capabilities=capabilities, options=options,
Expand Down Expand Up @@ -180,10 +182,14 @@ def create_iphone(self, desired_capabilities, remote_url):
return self._remote(default, desired_capabilities, remote_url)

def _remote(self, default_capabilities, user_capabilities, remote_url,
profile_dir=None):
profile_dir=None, options=None):
remote_url = str(remote_url)
capabilities = self._combine_capabilites(default_capabilities,
user_capabilities)
if SELENIUM_VERSION.major >= 3 and SELENIUM_VERSION.minor >= 8:
return webdriver.Remote(command_executor=remote_url,
desired_capabilities=capabilities,
browser_profile=profile_dir, options=options)
return webdriver.Remote(command_executor=remote_url,
desired_capabilities=capabilities,
browser_profile=profile_dir)
Expand Down
61 changes: 50 additions & 11 deletions utest/test/keywords/test_webdrivercreator.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,8 @@ def test_chrome_remote(self):
caps = webdriver.DesiredCapabilities.CHROME
when(webdriver).Remote(command_executor=url,
desired_capabilities=caps,
browser_profile=None).thenReturn(expected_webdriver)
browser_profile=None,
options=None).thenReturn(expected_webdriver)
driver = self.creator.create_chrome({}, url)
self.assertEqual(driver, expected_webdriver)

Expand All @@ -90,6 +91,19 @@ def test_chrome_healdless(self):
verify(options, times=0).set_headless()
self.assertEqual(driver, expected_webdriver)

def test_chrome_healdless_with_grid(self):
caps = webdriver.DesiredCapabilities.CHROME
expected_webdriver = mock()
options = mock()
when(webdriver).ChromeOptions().thenReturn(options)
remote_url = 'localhost:4444'
when(webdriver).Remote(command_executor=remote_url,
desired_capabilities=caps, options=options,
browser_profile=None,).thenReturn(expected_webdriver)
driver = self.creator.create_headless_chrome({}, remote_url)
verify(options).set_headless()
self.assertEqual(driver, expected_webdriver)

def test_firefox(self):
expected_webdriver = mock()
profile = mock()
Expand All @@ -116,7 +130,8 @@ def test_firefox_remote(self):
caps = webdriver.DesiredCapabilities.FIREFOX
when(webdriver).Remote(command_executor=url,
desired_capabilities=caps,
browser_profile=profile).thenReturn(expected_webdriver)
browser_profile=profile,
options=None).thenReturn(expected_webdriver)
driver = self.creator.create_firefox({}, url, None)
self.assertEqual(driver, expected_webdriver)

Expand Down Expand Up @@ -157,6 +172,21 @@ def test_firefox_headless(self):
driver = self.creator.create_headless_firefox({}, None, None)
self.assertEqual(driver, expected_webdriver)

def test_firefox_healdless_with_grid(self):
caps = webdriver.DesiredCapabilities.FIREFOX
expected_webdriver = mock()
options = mock()
when(webdriver).FirefoxOptions().thenReturn(options)
profile = mock()
when(webdriver).FirefoxProfile().thenReturn(profile)
remote_url = 'localhost:4444'
when(webdriver).Remote(command_executor=remote_url,
desired_capabilities=caps, options=options,
browser_profile=profile,).thenReturn(expected_webdriver)
driver = self.creator.create_headless_firefox({}, remote_url, None)
verify(options).set_headless()
self.assertEqual(driver, expected_webdriver)

def test_ie(self):
expected_webdriver = mock()
caps = webdriver.DesiredCapabilities.INTERNETEXPLORER
Expand All @@ -170,7 +200,8 @@ def test_ie_remote(self):
caps = webdriver.DesiredCapabilities.INTERNETEXPLORER
when(webdriver).Remote(command_executor=url,
desired_capabilities=caps,
browser_profile=None).thenReturn(expected_webdriver)
browser_profile=None,
options=None).thenReturn(expected_webdriver)
driver = self.creator.create_ie({}, url)
self.assertEqual(driver, expected_webdriver)

Expand All @@ -187,7 +218,8 @@ def test_edge_remote(self):
caps = webdriver.DesiredCapabilities.EDGE
when(webdriver).Remote(command_executor=url,
desired_capabilities=caps,
browser_profile=None).thenReturn(expected_webdriver)
browser_profile=None,
options=None).thenReturn(expected_webdriver)
driver = self.creator.create_edge({}, url)
self.assertEqual(driver, expected_webdriver)

Expand All @@ -204,7 +236,8 @@ def test_opera_remote(self):
caps = webdriver.DesiredCapabilities.OPERA
when(webdriver).Remote(command_executor=url,
desired_capabilities=caps,
browser_profile=None).thenReturn(expected_webdriver)
browser_profile=None,
options=None).thenReturn(expected_webdriver)
driver = self.creator.create_opera({}, url)
self.assertEqual(driver, expected_webdriver)

Expand All @@ -221,7 +254,8 @@ def test_safari_remote(self):
caps = webdriver.DesiredCapabilities.SAFARI
when(webdriver).Remote(command_executor=url,
desired_capabilities=caps,
browser_profile=None).thenReturn(expected_webdriver)
browser_profile=None,
options=None).thenReturn(expected_webdriver)
driver = self.creator.create_safari({}, url)
self.assertEqual(driver, expected_webdriver)

Expand All @@ -238,7 +272,8 @@ def test_phantomjs_remote(self):
caps = webdriver.DesiredCapabilities.PHANTOMJS
when(webdriver).Remote(command_executor=url,
desired_capabilities=caps,
browser_profile=None).thenReturn(expected_webdriver)
browser_profile=None,
options=None).thenReturn(expected_webdriver)
driver = self.creator.create_phantomjs({}, url)
self.assertEqual(driver, expected_webdriver)

Expand All @@ -247,7 +282,8 @@ def test_htmlunit(self):
caps = webdriver.DesiredCapabilities.HTMLUNIT
when(webdriver).Remote(command_executor='None',
desired_capabilities=caps,
browser_profile=None).thenReturn(expected_webdriver)
browser_profile=None,
options=None).thenReturn(expected_webdriver)
driver = self.creator.create_htmlunit({}, None)
self.assertEqual(driver, expected_webdriver)

Expand All @@ -256,7 +292,8 @@ def test_htmlunit_with_js(self):
caps = webdriver.DesiredCapabilities.HTMLUNITWITHJS
when(webdriver).Remote(command_executor='None',
desired_capabilities=caps,
browser_profile=None).thenReturn(expected_webdriver)
browser_profile=None,
options=None).thenReturn(expected_webdriver)
driver = self.creator.create_htmlunit_with_js({}, None)
self.assertEqual(driver, expected_webdriver)

Expand All @@ -265,7 +302,8 @@ def test_android(self):
caps = webdriver.DesiredCapabilities.ANDROID
when(webdriver).Remote(command_executor='None',
desired_capabilities=caps,
browser_profile=None).thenReturn(expected_webdriver)
browser_profile=None,
options=None).thenReturn(expected_webdriver)
driver = self.creator.create_android({}, None)
self.assertEqual(driver, expected_webdriver)

Expand All @@ -274,7 +312,8 @@ def test_iphone(self):
caps = webdriver.DesiredCapabilities.IPHONE
when(webdriver).Remote(command_executor='None',
desired_capabilities=caps,
browser_profile=None).thenReturn(expected_webdriver)
browser_profile=None,
options=None).thenReturn(expected_webdriver)
driver = self.creator.create_iphone({}, None)
self.assertEqual(driver, expected_webdriver)

Expand Down