Conduce la ópera con selenium python

Agregué a mi variable de entorno

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

Que descargué aquí http://selenium-release.storage.googleapis.com/index.html?path=2.46/

Script Python:

 from selenium import webdriver webdriver.Opera() 

Salida:

 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}]] 

Esperaba que el tarro tuviera todo definido, ¿por qué no se encuentra la clase de controlador?

Según su pregunta, parece que está utilizando un controlador antiguo para Opera versión 12 y versiones anteriores. Suponiendo que está intentando usar la versión más reciente de Opera, querrá usar el controlador disponible en el siguiente sitio: OperaChromiumDriver

El sitio muestra un ejemplo de código de Python que he confirmado que funciona en mi máquina para abrir y conducir Opera: Ejemplos de Python para 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() 

EDITAR: Al examinar los registros de cambios de selenium, parece que el soporte para las Óperas basadas en Prest se suspendió después de las 2.45, por lo que recibe los mensajes de error: CAMBIAR

El siguiente código me funcionó en la siguiente configuración. Espero que esto ayude.

  • Python: 3.4.0
  • Ópera: 42.0.2393.94
  • Selenio: 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)