Drive Opera with selenium python

18,747

Solution 1

Based on your question it looks like you are using an old driver for Opera version 12 and older. Assuming that you're trying to use the most recent version of Opera you'll want to use the driver available at the following site: OperaChromiumDriver

The site lists sample python code which I have confirmed works on my machine to open and drive Opera: Python Examples for OperaChromiumDriver

import time

from selenium import webdriver
from selenium.webdriver.chrome import service


webdriver_service = service.Service('C:\\Users\\Kris\\Downloads\\WinPython-32bit-2.7.9.2\\operadriver.exe')
webdriver_service.start()

driver = webdriver.Remote(webdriver_service.service_url, webdriver.DesiredCapabilities.OPERA)

driver.get('https://www.google.com/')
input_txt = driver.find_element_by_name('q')
input_txt.send_keys('operadriver\n')

time.sleep(5) #see the result
driver.quit()

EDIT: Looking into the change logs for selenium it looks like support for Presto-based Operas was discontinued after 2.45 which is why you're getting the error messages:CHANGELOG

Solution 2

The code below worked for me on the following setup. Hope this helps.

  • Python: 3.4.0
  • Opera: 42.0.2393.94
  • Selenium: 3.0.2
  • ChromeDriver: 2.27.440174

    import os
    
    from selenium import webdriver
    from selenium.webdriver.common import desired_capabilities
    from selenium.webdriver.opera import options
    
    _operaDriverLoc = os.path.abspath('E:\\Envs\\PySelEnv\\selserver\\chromedriver.exe')  # Replace this path with the actual path on your machine.
    _operaExeLoc = os.path.abspath('E:\\Program Files\\Opera\\42.0.2393.94\\opera.exe')   # Replace this path with the actual path on your machine.
    
    _remoteExecutor = 'http://127.0.0.1:9515'
    _operaCaps = desired_capabilities.DesiredCapabilities.OPERA.copy()
    
    _operaOpts = options.ChromeOptions()
    _operaOpts._binary_location = _operaExeLoc
    
    # Use the below argument if you want the Opera browser to be in the maximized state when launching. 
    # The full list of supported arguments can be found on http://peter.sh/experiments/chromium-command-line-switches/
    _operaOpts.add_argument('--start-maximized')   
    
    self._browserDriver = webdriver.Chrome(executable_path = _operaDriverLoc, chrome_options = _operaOpts, desired_capabilities = _operaCaps)
    

Solution 3

from selenium import webdriver

driver=webdriver.Chrome('C:\\Users\\abc\\Projects\\TestProject\\operadriver.exe')

driver.get('https://www.google.com/')

/*

Just give the location of operadriver.exe ... as above It will open Opera browser... instead of chrome Browser


you can download opera driver here : https://github.com/operasoftware/operachromiumdriver

*/

Share:
18,747
arsenik
Author by

arsenik

Web developer

Updated on June 04, 2022

Comments

  • arsenik
    arsenik about 2 years

    I added to my environment variable

    SELENIUM_SERVER_JAR = C:\selenium_drivers\selenium-server-standalone.jar
    

    Which I downloaded here http://selenium-release.storage.googleapis.com/index.html?path=2.46/

    Python script:

    from selenium import webdriver
    
    webdriver.Opera()
    

    Output:

    13:37:37.906 INFO - Launching a standalone Selenium Server
    13:37:38.104 INFO - Java: Oracle Corporation 25.45-b02
    13:37:38.104 INFO - OS: Windows 8 6.2 x86
    13:37:38.132 INFO - v2.46.0, with Core v2.46.0. Built from revision 87c69e2
    13:37:38.269 INFO - Driver class not found: com.opera.core.systems.OperaDriver
    13:37:38.275 INFO - Driver provider com.opera.core.systems.OperaDriver is not registered
    13:37:38.630 INFO - RemoteWebDriver instances should connect to: http://127.0.0.1:53024/wd/hub
    13:37:38.631 INFO - Selenium Server is up and running
    13:37:47.892 INFO - Executing: [new session: Capabilities [{browserName=opera, javascriptEnabled=true, version=, platform=ANY}]])
    13:37:47.907 INFO - Creating a new session for Capabilities [{browserName=opera, javascriptEnabled=true, version=, platform=ANY}]
    Started InternetExplorerDriver server (32-bit) 2.43.0.0
    Listening on port 43192
    13:37:51.090 INFO - Done: [new session: Capabilities [{browserName=opera, javascriptEnabled=true, version=, platform=ANY}]]
    

    I was expecting jar to have everything defined, why do I get Driver class not found?