Skip to content

Commit 56c0501

Browse files
committed
Remote browsers
1 parent c266cf4 commit 56c0501

File tree

2 files changed

+68
-12
lines changed

2 files changed

+68
-12
lines changed

src/SeleniumLibrary/keywords/webdrivertools/webdrivertools.py

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -258,30 +258,34 @@ def create_phantomjs(self, desired_capabilities, remote_url, options=None, servi
258258
return webdriver.PhantomJS(service_log_path=service_log_path, executable_path=executable_path,
259259
**desired_capabilities)
260260

261-
def create_htmlunit(self, desired_capabilities, remote_url, options=None, service_log_path=None):
262-
if service_log_path or options:
263-
logger.warn('Htmlunit does not support Selenium options or service_log_path argument.')
261+
def create_htmlunit(self, desired_capabilities, remote_url, options=None, service_log_path=None,
262+
executable_path=None):
263+
if service_log_path or options or executable_path:
264+
logger.warn('Htmlunit does not support Selenium options, service_log_path or executable_path argument.')
264265
defaul_caps = webdriver.DesiredCapabilities.HTMLUNIT.copy()
265266
desired_capabilities = self._remote_capabilities_resolver(desired_capabilities, defaul_caps)
266267
return self._remote(desired_capabilities, remote_url, options=options)
267268

268-
def create_htmlunit_with_js(self, desired_capabilities, remote_url, options=None, service_log_path=None):
269-
if service_log_path or options:
270-
logger.warn('Htmlunit with JS does not support service_log_path argument.')
269+
def create_htmlunit_with_js(self, desired_capabilities, remote_url, options=None, service_log_path=None,
270+
executable_path=None):
271+
if service_log_path or options or executable_path:
272+
logger.warn('Htmlunit with JS does not support Selenium options, service_log_path or executable_path argument.')
271273
defaul_caps = webdriver.DesiredCapabilities.HTMLUNITWITHJS.copy()
272274
desired_capabilities = self._remote_capabilities_resolver(desired_capabilities, defaul_caps)
273275
return self._remote(desired_capabilities, remote_url, options=options)
274276

275-
def create_android(self, desired_capabilities, remote_url, options=None, service_log_path=None):
276-
if service_log_path:
277-
logger.warn('Android does not support service_log_path argument.')
277+
def create_android(self, desired_capabilities, remote_url, options=None, service_log_path=None,
278+
executable_path=None):
279+
if service_log_path or executable_path:
280+
logger.warn('Android does not support Selenium options or executable_path argument.')
278281
defaul_caps = webdriver.DesiredCapabilities.ANDROID.copy()
279282
desired_capabilities = self._remote_capabilities_resolver(desired_capabilities, defaul_caps)
280283
return self._remote(desired_capabilities, remote_url, options=options)
281284

282-
def create_iphone(self, desired_capabilities, remote_url, options=None, service_log_path=None):
283-
if service_log_path:
284-
logger.warn('iPhone does not support service_log_path argument.')
285+
def create_iphone(self, desired_capabilities, remote_url, options=None, service_log_path=None,
286+
executable_path=None):
287+
if service_log_path or executable_path:
288+
logger.warn('iPhone does not support service_log_path or executable_path argument.')
285289
defaul_caps = webdriver.DesiredCapabilities.IPHONE.copy()
286290
desired_capabilities = self._remote_capabilities_resolver(desired_capabilities, defaul_caps)
287291
return self._remote(desired_capabilities, remote_url, options=options)

utest/test/keywords/test_webdrivercreator_executable_path.py

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,58 @@ def test_create_phantomjs_executable_path_not_set(creator):
242242
assert driver == expected_webdriver
243243

244244

245+
def test_create_htmlunit_executable_path_set(creator):
246+
executable_path = 'path/to/bin'
247+
caps = webdriver.DesiredCapabilities.HTMLUNIT.copy()
248+
expected_webdriver = mock()
249+
file_detector = mock_file_detector(creator)
250+
when(webdriver).Remote(command_executor='None',
251+
desired_capabilities=caps,
252+
browser_profile=None, options=None,
253+
file_detector=file_detector).thenReturn(expected_webdriver)
254+
driver = creator.create_htmlunit({}, None, executable_path=executable_path)
255+
assert driver == expected_webdriver
256+
257+
258+
def test_create_htmlunit_with_js_executable_path_set(creator):
259+
executable_path = 'path/to/bin'
260+
caps = webdriver.DesiredCapabilities.HTMLUNITWITHJS.copy()
261+
expected_webdriver = mock()
262+
file_detector = mock_file_detector(creator)
263+
when(webdriver).Remote(command_executor='None',
264+
desired_capabilities=caps,
265+
browser_profile=None, options=None,
266+
file_detector=file_detector).thenReturn(expected_webdriver)
267+
driver = creator.create_htmlunit_with_js({}, None, executable_path=executable_path)
268+
assert driver == expected_webdriver
269+
270+
271+
def test_create_android_executable_path_set(creator):
272+
executable_path = 'path/to/bin'
273+
caps = webdriver.DesiredCapabilities.ANDROID.copy()
274+
expected_webdriver = mock()
275+
file_detector = mock_file_detector(creator)
276+
when(webdriver).Remote(command_executor='None',
277+
desired_capabilities=caps,
278+
browser_profile=None, options=None,
279+
file_detector=file_detector).thenReturn(expected_webdriver)
280+
driver = creator.create_android({}, None, executable_path=executable_path)
281+
assert driver == expected_webdriver
282+
283+
284+
def test_create_iphone_executable_path_set(creator):
285+
executable_path = 'path/to/bin'
286+
caps = webdriver.DesiredCapabilities.IPHONE.copy()
287+
expected_webdriver = mock()
288+
file_detector = mock_file_detector(creator)
289+
when(webdriver).Remote(command_executor='None',
290+
desired_capabilities=caps,
291+
browser_profile=None, options=None,
292+
file_detector=file_detector).thenReturn(expected_webdriver)
293+
driver = creator.create_iphone({}, None, executable_path=executable_path)
294+
assert driver == expected_webdriver
295+
296+
245297
def mock_file_detector(creator):
246298
file_detector = mock()
247299
when(creator)._get_sl_file_detector().thenReturn(file_detector)

0 commit comments

Comments
 (0)