|
12 | 12 | from seleniumbase.fixtures import page_utils
|
13 | 13 | import drivers # webdriver storage folder for SeleniumBase
|
14 | 14 | DRIVER_DIR = os.path.dirname(os.path.realpath(drivers.__file__))
|
| 15 | +PLATFORM = sys.platform |
15 | 16 | LOCAL_CHROMEDRIVER = None
|
16 | 17 | LOCAL_GECKODRIVER = None
|
17 | 18 | LOCAL_EDGEDRIVER = None
|
18 |
| -if "darwin" in sys.platform or "linux" in sys.platform: |
| 19 | +LOCAL_OPERADRIVER = None |
| 20 | +if "darwin" in PLATFORM or "linux" in PLATFORM: |
19 | 21 | LOCAL_CHROMEDRIVER = DRIVER_DIR + '/chromedriver'
|
20 | 22 | LOCAL_GECKODRIVER = DRIVER_DIR + '/geckodriver'
|
21 |
| -elif "win32" in sys.platform or "win64" in sys.platform: |
| 23 | + LOCAL_OPERADRIVER = DRIVER_DIR + '/operadriver' |
| 24 | +elif "win32" in PLATFORM or "win64" in PLATFORM or "x64" in PLATFORM: |
22 | 25 | LOCAL_EDGEDRIVER = DRIVER_DIR + '/MicrosoftWebDriver.exe'
|
23 | 26 | LOCAL_CHROMEDRIVER = DRIVER_DIR + '/chromedriver.exe'
|
24 | 27 | LOCAL_GECKODRIVER = DRIVER_DIR + '/geckodriver.exe'
|
| 28 | + LOCAL_OPERADRIVER = DRIVER_DIR + '/operadriver.exe' |
25 | 29 | else:
|
26 | 30 | # Cannot determine system
|
27 | 31 | pass # SeleniumBase will use web drivers from the System PATH by default
|
@@ -217,6 +221,11 @@ def get_remote_driver(browser_name, headless, servername, port, proxy_string):
|
217 | 221 | command_executor=address,
|
218 | 222 | desired_capabilities=(
|
219 | 223 | webdriver.DesiredCapabilities.SAFARI))
|
| 224 | + elif browser_name == constants.Browser.OPERA: |
| 225 | + return webdriver.Remote( |
| 226 | + command_executor=address, |
| 227 | + desired_capabilities=( |
| 228 | + webdriver.DesiredCapabilities.OPERA)) |
220 | 229 | elif browser_name == constants.Browser.PHANTOM_JS:
|
221 | 230 | with warnings.catch_warnings():
|
222 | 231 | # Ignore "PhantomJS has been deprecated" UserWarning
|
@@ -282,6 +291,12 @@ def get_local_driver(browser_name, headless, proxy_string):
|
282 | 291 | return webdriver.Edge(capabilities=edge_capabilities)
|
283 | 292 | elif browser_name == constants.Browser.SAFARI:
|
284 | 293 | return webdriver.Safari()
|
| 294 | + elif browser_name == constants.Browser.OPERA: |
| 295 | + if LOCAL_OPERADRIVER and os.path.exists(LOCAL_OPERADRIVER): |
| 296 | + make_driver_executable_if_not(LOCAL_OPERADRIVER) |
| 297 | + return webdriver.Opera(executable_path=LOCAL_OPERADRIVER) |
| 298 | + else: |
| 299 | + return webdriver.Opera() |
285 | 300 | elif browser_name == constants.Browser.PHANTOM_JS:
|
286 | 301 | with warnings.catch_warnings():
|
287 | 302 | # Ignore "PhantomJS has been deprecated" UserWarning
|
|
0 commit comments