用 selenium 驱动 Opera python
Drive Opera with selenium python
我添加到我的环境变量
SELENIUM_SERVER_JAR = C:\selenium_drivers\selenium-server-standalone.jar
我在这里下载的http://selenium-release.storage.googleapis.com/index.html?path=2.46/
Python 脚本:
from selenium import webdriver
webdriver.Opera()
输出:
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}]]
我原以为 jar 已经定义了所有内容,为什么我找不到驱动程序 class?
根据您的问题,您使用的似乎是适用于 Opera 12 及更早版本的旧驱动程序。假设您尝试使用最新版本的 Opera,您需要使用以下站点提供的驱动程序:OperaChromiumDriver
该站点列出了示例 python 代码,我已经确认它可以在我的机器上打开和驱动 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()
编辑:
查看 selenium 的更改日志,看起来对基于 Presto 的 Operas 的支持在 2.45 之后停止,这就是您收到错误消息的原因:CHANGELOG
下面的代码适用于我的以下设置。希望这有帮助。
- Python: 3.4.0
- 歌剧:42.0.2393.94
- 硒:3.0.2
Chrome 驱动程序: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)
from selenium import webdriver
driver=webdriver.Chrome('C:\Users\abc\Projects\TestProject\operadriver.exe')
driver.get('https://www.google.com/')
/*
只需给出 operadriver.exe 的位置 ... 如上所述它将打开 Opera 浏览器... 而不是 chrome 浏览器
您可以在这里下载 Opera 驱动程序:https://github.com/operasoftware/operachromiumdriver
*/
我用 webdriver_manager package 用 selenium 驱动 Opera。
安装:
pip install webdriver-manager
设置:
from selenium import webdriver
from webdriver_manager.opera import OperaDriverManager
driver = webdriver.Opera(executable_path=OperaDriverManager().install())
使用:
driver.get("https://www.google.com")
我添加到我的环境变量
SELENIUM_SERVER_JAR = C:\selenium_drivers\selenium-server-standalone.jar
我在这里下载的http://selenium-release.storage.googleapis.com/index.html?path=2.46/
Python 脚本:
from selenium import webdriver
webdriver.Opera()
输出:
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}]]
我原以为 jar 已经定义了所有内容,为什么我找不到驱动程序 class?
根据您的问题,您使用的似乎是适用于 Opera 12 及更早版本的旧驱动程序。假设您尝试使用最新版本的 Opera,您需要使用以下站点提供的驱动程序:OperaChromiumDriver
该站点列出了示例 python 代码,我已经确认它可以在我的机器上打开和驱动 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()
编辑: 查看 selenium 的更改日志,看起来对基于 Presto 的 Operas 的支持在 2.45 之后停止,这就是您收到错误消息的原因:CHANGELOG
下面的代码适用于我的以下设置。希望这有帮助。
- Python: 3.4.0
- 歌剧:42.0.2393.94
- 硒:3.0.2
Chrome 驱动程序: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)
from selenium import webdriver
driver=webdriver.Chrome('C:\Users\abc\Projects\TestProject\operadriver.exe')
driver.get('https://www.google.com/')
/*
只需给出 operadriver.exe 的位置 ... 如上所述它将打开 Opera 浏览器... 而不是 chrome 浏览器
您可以在这里下载 Opera 驱动程序:https://github.com/operasoftware/operachromiumdriver
*/
我用 webdriver_manager package 用 selenium 驱动 Opera。
安装:
pip install webdriver-manager
设置:
from selenium import webdriver
from webdriver_manager.opera import OperaDriverManager
driver = webdriver.Opera(executable_path=OperaDriverManager().install())
使用:
driver.get("https://www.google.com")