|
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