Skip to content

Commit 58bb3b5

Browse files
committed
Executable path for Opera
1 parent 8b557aa commit 58bb3b5

File tree

5 files changed

+34
-6
lines changed

5 files changed

+34
-6
lines changed

src/SeleniumLibrary/keywords/webdrivertools/webdrivertools.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -220,12 +220,16 @@ def create_edge(self, desired_capabilities, remote_url, options=None, service_lo
220220
**desired_capabilities)
221221
return webdriver.Edge(service_log_path=service_log_path, executable_path=executable_path, **desired_capabilities)
222222

223-
def create_opera(self, desired_capabilities, remote_url, options=None, service_log_path=None):
223+
def create_opera(self, desired_capabilities, remote_url, options=None, service_log_path=None,
224+
executable_path='operadriver'):
224225
if is_truthy(remote_url):
225226
defaul_caps = webdriver.DesiredCapabilities.OPERA.copy()
226227
desired_capabilities = self._remote_capabilities_resolver(desired_capabilities, defaul_caps)
227228
return self._remote(desired_capabilities, remote_url, options=options)
228-
return webdriver.Opera(options=options, service_log_path=service_log_path, **desired_capabilities)
229+
if is_falsy(executable_path):
230+
executable_path = self._get_executable_path(webdriver.Opera)
231+
return webdriver.Opera(options=options, service_log_path=service_log_path, executable_path=executable_path,
232+
**desired_capabilities)
229233

230234
def create_safari(self, desired_capabilities, remote_url, options=None, service_log_path=None):
231235
if is_truthy(remote_url):

utest/test/keywords/test_selenium_options_parser.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -355,7 +355,9 @@ def test_create_edge_with_options(creator):
355355
def test_create_opera_with_options(creator):
356356
options = mock()
357357
expected_webdriver = mock()
358-
when(webdriver).Opera(options=options, service_log_path=None).thenReturn(expected_webdriver)
358+
executable_path = 'operadriver'
359+
when(webdriver).Opera(options=options, service_log_path=None,
360+
executable_path=executable_path).thenReturn(expected_webdriver)
359361
driver = creator.create_opera({}, None, options=options)
360362
assert driver == expected_webdriver
361363

utest/test/keywords/test_webdrivercreator.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -438,7 +438,9 @@ def test_edge_no_browser_name(creator):
438438

439439
def test_opera(creator):
440440
expected_webdriver = mock()
441-
when(webdriver).Opera(options=None, service_log_path=None).thenReturn(expected_webdriver)
441+
executable_path = 'operadriver'
442+
when(webdriver).Opera(options=None, service_log_path=None,
443+
executable_path=executable_path).thenReturn(expected_webdriver)
442444
driver = creator.create_opera({}, None)
443445
assert driver == expected_webdriver
444446

utest/test/keywords/test_webdrivercreator_executable_path.py

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,6 @@ def test_create_edge_executable_path_set(creator):
163163
driver = creator.create_edge({}, None, executable_path=executable_path)
164164
assert driver == expected_webdriver
165165

166-
167166
def test_create_edge_executable_path_not_set(creator):
168167
executable_path = 'MicrosoftWebDriver.exe'
169168
expected_webdriver = mock()
@@ -174,6 +173,25 @@ def test_create_edge_executable_path_not_set(creator):
174173
assert driver == expected_webdriver
175174

176175

176+
def test_create_opera_executable_path_set(creator):
177+
executable_path = '/path/to/operadriver'
178+
expected_webdriver = mock()
179+
when(webdriver).Opera(service_log_path=None, options=None,
180+
executable_path=executable_path).thenReturn(expected_webdriver)
181+
driver = creator.create_opera({}, None, executable_path=executable_path)
182+
assert driver == expected_webdriver
183+
184+
185+
def test_create_opera_executable_path_not_set(creator):
186+
executable_path = 'operadriver'
187+
expected_webdriver = mock()
188+
when(creator)._get_executable_path(ANY).thenReturn(executable_path)
189+
when(webdriver).Opera(service_log_path=None, options=None,
190+
executable_path=executable_path).thenReturn(expected_webdriver)
191+
driver = creator.create_opera({}, None, executable_path=None)
192+
assert driver == expected_webdriver
193+
194+
177195
def mock_file_detector(creator):
178196
file_detector = mock()
179197
when(creator)._get_sl_file_detector().thenReturn(file_detector)

utest/test/keywords/test_webdrivercreator_service_log_path.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,9 +147,11 @@ def test_create_edge_with_service_log_path_real_path(creator):
147147

148148

149149
def test_create_opera_with_service_log_path_real_path(creator):
150+
executable_path = 'operadriver'
150151
log_file = os.path.join(creator.output_dir, 'ie-1.log')
151152
expected_webdriver = mock()
152-
when(webdriver).Opera(options=None, service_log_path=log_file).thenReturn(expected_webdriver)
153+
when(webdriver).Opera(options=None, service_log_path=log_file,
154+
executable_path=executable_path).thenReturn(expected_webdriver)
153155
driver = creator.creator.create_opera({}, None, service_log_path=log_file)
154156
assert driver == expected_webdriver
155157

0 commit comments

Comments
 (0)