我添加到我的环境变量
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可以定义所有内容,为什么我找不到Driver类?
答案 0 :(得分:3)
以下代码适用于以下设置。希望这会有所帮助。
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)
答案 1 :(得分:2)
根据您的问题,看起来您使用的是Opera 12及更早版本的旧驱动程序。假设您尝试使用最新版本的Opera,您会想要使用以下网站提供的驱动程序:OperaChromiumDriver
该网站列出了我已确认在我的机器上运行以打开并驱动Opera的示例python代码: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
答案 2 :(得分:1)
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
* /
答案 3 :(得分:0)
我使用 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")