blob: 14ddf384cd5bf4e0440e55c47faf28745f1525c0 [file] [log] [blame]
"""This module provides webdriver-based utility functions."""
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
import importlib
import sys
def import_selenium_module(submodule=None):
"""Dynamically imports a selenium.webdriver submodule.
This is done because selenium 3.* is not commonly pre-installed
on workstations, and we want to have a friendly error message for that
case.
Args:
submodule: module subpath underneath "selenium.webdriver"
Returns:
appropriate module
"""
if submodule:
module_path = '.'.join(('selenium', submodule))
else:
module_path = 'selenium'
# As of this writing, Google uses selenium 3.0.0b2 internally, so
# thats what we will target here as well.
try:
module = importlib.import_module(module_path)
if submodule is None:
# Only the top-level module has __version__
if not module.__version__.startswith('3.'):
raise ImportError('Not version 3.x.x')
except ImportError:
sys.stderr.write('Could not import {}\n'
'Please install selenium >= 3.0.0b2.\n'
'Commonly: \"sudo pip install \'selenium>=3.0.0b2\'\"\n'
.format(module_path))
sys.exit(1)
return module