Skip to content

Commit 6239770

Browse files
committed
test
1 parent c607c59 commit 6239770

File tree

2 files changed

+292
-263
lines changed

2 files changed

+292
-263
lines changed

toolium/config_driver.py

Lines changed: 1 addition & 263 deletions
Original file line numberDiff line numberDiff line change
@@ -66,11 +66,10 @@ def get_error_message_from_traceback(traceback):
6666

6767

6868
class ConfigDriver(object):
69-
def __init__(self, config, utils=None, playwright=None):
69+
def __init__(self, config, utils=None):
7070
self.logger = logging.getLogger(__name__)
7171
self.config = config
7272
self.utils = utils
73-
self.playwright = playwright
7473

7574
def create_driver(self):
7675
"""Create a selenium driver using specified config properties
@@ -93,36 +92,6 @@ def create_driver(self):
9392

9493
return driver
9594

96-
def create_playwright_browser(self):
97-
"""
98-
Create a playwright browser using specified config properties
99-
100-
:returns: a new playwright browser o persistent browser context
101-
"""
102-
driver_type = self.config.get('Driver', 'type')
103-
try:
104-
self.logger.info("Creating playwright driver (type = %s)", driver_type)
105-
return self._create_playwright_browser()
106-
except Exception as exc:
107-
error_message = get_error_message_from_exception(exc)
108-
self.logger.error("%s driver can not be launched: %s", driver_type.capitalize(), error_message)
109-
raise
110-
111-
def create_playwright_persistent_browser_context(self):
112-
"""
113-
Create a playwright persistent browser context using specified config properties
114-
115-
:returns: a new playwright persistent browser context
116-
"""
117-
driver_type = self.config.get('Driver', 'type')
118-
try:
119-
self.logger.info("Creating playwright persistent context (type = %s)", driver_type)
120-
return self._create_playwright_persistent_browser_context()
121-
except Exception as exc:
122-
error_message = get_error_message_from_exception(exc)
123-
self.logger.error("%s driver can not be launched: %s", driver_type.capitalize(), error_message)
124-
raise
125-
12695
def _create_remote_driver(self):
12796
"""Create a driver in a remote server
12897
View valid capabilities in https://www.selenium.dev/documentation/webdriver/drivers/options/
@@ -195,76 +164,6 @@ def _create_local_driver(self):
195164

196165
return driver
197166

198-
def _create_playwright_browser(self):
199-
"""Create a browser in local machine using Playwright
200-
201-
:returns: a new browser Playwright
202-
"""
203-
driver_name = self.utils.get_driver_name()
204-
if driver_name in ('android', 'ios', 'iphone'):
205-
raise Exception('Playwright does not support mobile devices')
206-
else:
207-
if driver_name in ['chrome', 'chromium']:
208-
browser = self._setup_playwright_chrome()
209-
elif driver_name == 'firefox':
210-
browser = self._setup_playwright_firefox()
211-
elif driver_name in ['safari', 'webkit']:
212-
browser = self._setup_playwright_webkit()
213-
else:
214-
raise Exception(f'Playwright does not support {driver_name} driver')
215-
return browser
216-
217-
def _create_playwright_persistent_browser_context(self):
218-
"""Create a browser in local machine using Playwright
219-
220-
:returns: a new persistent browser context Playwright
221-
"""
222-
driver_name = self.utils.get_driver_name()
223-
if driver_name in ('android', 'ios', 'iphone'):
224-
raise Exception('Playwright does not support mobile devices')
225-
else:
226-
if driver_name in ['chrome', 'chromium']:
227-
browser_context = self._setup_playwright_persistent_chrome()
228-
elif driver_name == 'firefox':
229-
browser_context = self._setup_playwright_persistent_firefox()
230-
elif driver_name in ['safari', 'webkit']:
231-
browser_context = self._setup_playwright_persistent_webkit()
232-
else:
233-
raise Exception(f'Playwright does not support {driver_name} driver')
234-
return browser_context
235-
236-
def get_playwright_context_options(self):
237-
"""Get Playwright context options from properties file
238-
239-
:returns: Playwright context options
240-
"""
241-
context_options = {}
242-
try:
243-
for key, value in dict(self.config.items('PlaywrightContextOptions')).items():
244-
self.logger.debug("Added Playwright context option: %s = %s", key, value)
245-
context_options[key] = self._convert_property_type(value)
246-
except NoSectionError:
247-
pass
248-
window_width = self.config.get_optional('Driver', 'window_width')
249-
window_height = self.config.get_optional('Driver', 'window_height')
250-
if window_width and window_height:
251-
context_options['viewport'] = {'width': int(window_width), 'height': int(window_height)}
252-
return context_options
253-
254-
def get_playwright_page_options(self):
255-
"""Get Playwright page options from properties file
256-
257-
:returns: Playwright page options
258-
"""
259-
page_options = {}
260-
try:
261-
for key, value in dict(self.config.items('PlaywrightPageOptions')).items():
262-
self.logger.debug("Added Playwright page option: %s = %s", key, value)
263-
page_options[key] = self._convert_property_type(value)
264-
except NoSectionError:
265-
pass
266-
return page_options
267-
268167
def _get_capabilities_from_driver_type(self):
269168
"""Extract browserVersion and platformName from driver type and add them to capabilities
270169
@@ -396,69 +295,6 @@ def _add_firefox_extensions(self, driver):
396295
except NoSectionError:
397296
pass
398297

399-
def _setup_playwright_firefox(self):
400-
"""Setup Playwright Firefox browser
401-
402-
:returns: a new Playwright Firefox browser
403-
"""
404-
headless_mode = self.config.getboolean_optional('Driver', 'headless')
405-
arguments = []
406-
preferences = {}
407-
self._add_playwright_firefox_arguments(arguments)
408-
# Note: Playwright does not support Firefox extensions
409-
self._add_playwright_firefox_preferences(preferences)
410-
browser_options = self._get_playwright_browser_options()
411-
browser_options = self._update_dict(browser_options, {'args': arguments})
412-
browser_options = self._update_dict(browser_options, {'firefox_user_prefs': preferences})
413-
return self.playwright.firefox.launch(
414-
headless=headless_mode,
415-
**browser_options
416-
)
417-
418-
def _setup_playwright_persistent_firefox(self):
419-
"""Setup Playwright Firefox persistent browser context
420-
421-
:returns: a new Playwright Firefox persistent browser context
422-
"""
423-
headless_mode = self.config.getboolean_optional('Driver', 'headless')
424-
arguments = []
425-
preferences = {}
426-
self._add_playwright_firefox_arguments(arguments)
427-
# Note: Playwright does not support Firefox extensions
428-
self._add_playwright_firefox_preferences(preferences)
429-
context_options = self.get_playwright_context_options()
430-
context_options = self._update_dict(context_options, {'args': arguments})
431-
context_options = self._update_dict(context_options, {'firefox_user_prefs': preferences})
432-
return self.playwright.firefox.launch_persistent_context(
433-
headless=headless_mode,
434-
**context_options
435-
)
436-
437-
def _add_playwright_firefox_arguments(self, arguments):
438-
"""Add Firefox arguments from properties file prepared for Playwright
439-
440-
:param arguments: Firefox arguments object
441-
"""
442-
try:
443-
for pref, pref_value in dict(self.config.items('FirefoxArguments')).items():
444-
pref_value = '={}'.format(pref_value) if pref_value else ''
445-
self.logger.debug("Added Firefox argument: %s%s", pref, pref_value)
446-
arguments.append('--{}{}'.format(pref, self._convert_property_type(pref_value)))
447-
except NoSectionError:
448-
pass
449-
450-
def _add_playwright_firefox_preferences(self, preferences):
451-
"""Add Firefox preferences from properties file prepared for Playwright
452-
453-
:param preferences: Firefox preferences object
454-
"""
455-
try:
456-
for pref, pref_value in dict(self.config.items('FirefoxPreferences')).items():
457-
self.logger.debug("Added Firefox preference: %s = %s", pref, pref_value)
458-
preferences[pref] = self._convert_property_type(pref_value)
459-
except NoSectionError:
460-
pass
461-
462298
@staticmethod
463299
def _convert_property_type(value):
464300
"""Converts the string value in a boolean, integer or string
@@ -526,80 +362,6 @@ def _get_chrome_options(self, capabilities={}):
526362

527363
return options
528364

529-
def _get_playwright_browser_options(self):
530-
"""
531-
Get Playwright browser options from properties file
532-
533-
:returns: Playwright browser options
534-
"""
535-
browser_options = {}
536-
try:
537-
for key, value in dict(self.config.items('PlaywrightBrowserOptions')).items():
538-
self.logger.debug("Added Playwright Browser option: %s = %s", key, value)
539-
browser_options[key] = self._convert_property_type(value)
540-
except NoSectionError:
541-
pass
542-
return browser_options
543-
544-
def _setup_playwright_chrome(self):
545-
"""
546-
Setup Playwright Chrome browser
547-
548-
:returns: a new Playwright Chrome browser
549-
"""
550-
headless_mode = self.config.getboolean_optional('Driver', 'headless')
551-
arguments = []
552-
self._add_playwright_chrome_arguments(arguments)
553-
self._add_playwright_chrome_extensions(arguments)
554-
browser_options = self._get_playwright_browser_options()
555-
browser_options = self._update_dict(browser_options, {'args': arguments})
556-
return self.playwright.chromium.launch(
557-
headless=headless_mode,
558-
**browser_options
559-
)
560-
561-
def _setup_playwright_persistent_chrome(self):
562-
"""
563-
Setup Playwright Chrome persistent browser context
564-
565-
:returns: a new Playwright Chrome persistent browser context
566-
"""
567-
headless_mode = self.config.getboolean_optional('Driver', 'headless')
568-
arguments = []
569-
self._add_playwright_chrome_arguments(arguments)
570-
self._add_playwright_chrome_extensions(arguments)
571-
context_options = self.get_playwright_context_options()
572-
context_options = self._update_dict(context_options, {'args': arguments})
573-
return self.playwright.chromium.launch_persistent_context(
574-
headless=headless_mode,
575-
**context_options
576-
)
577-
578-
def _add_playwright_chrome_arguments(self, arguments):
579-
"""Add Chrome arguments from properties file prepared for Playwright
580-
581-
:param arguments: Chrome arguments object
582-
"""
583-
try:
584-
for pref, pref_value in dict(self.config.items('ChromeArguments')).items():
585-
pref_value = '={}'.format(pref_value) if pref_value else ''
586-
self.logger.debug("Added Chrome argument: %s%s", pref, pref_value)
587-
arguments.append('--{}{}'.format(pref, self._convert_property_type(pref_value)))
588-
except NoSectionError:
589-
pass
590-
591-
def _add_playwright_chrome_extensions(self, arguments):
592-
"""Add Chrome extensions from properties file
593-
594-
:param arguments: Chrome options object
595-
"""
596-
try:
597-
for pref, pref_value in dict(self.config.items('ChromeExtensions')).items():
598-
self.logger.debug("Added Chrome extension: %s = %s", pref, pref_value)
599-
arguments.append('--load-extension={}'.format(pref_value))
600-
except NoSectionError:
601-
pass
602-
603365
def _add_chrome_options(self, options, option_name):
604366
"""Add Chrome options from properties file
605367
@@ -697,30 +459,6 @@ def _get_safari_options(self, capabilities={}):
697459
self._update_dict(options.capabilities, capabilities)
698460
return options
699461

700-
def _setup_playwright_webkit(self):
701-
"""Setup Playwright Webkit browser
702-
703-
:returns: a new Playwright Webkit browser
704-
"""
705-
headless_mode = self.config.getboolean_optional('Driver', 'headless')
706-
browser_options = self._get_playwright_browser_options()
707-
return self.playwright.webkit.launch(
708-
headless=headless_mode,
709-
**browser_options
710-
)
711-
712-
def _setup_playwright_persistent_webkit(self):
713-
"""Setup Playwright Webkit persistent browser context
714-
715-
:returns: a new Playwright Webkit persistent browser context
716-
"""
717-
headless_mode = self.config.getboolean_optional('Driver', 'headless')
718-
context_options = self.get_playwright_context_options()
719-
return self.playwright.webkit.launch_persistent_context(
720-
headless=headless_mode,
721-
**context_options
722-
)
723-
724462
def _setup_explorer(self):
725463
"""Setup Internet Explorer webdriver
726464

0 commit comments

Comments
 (0)