【问题标题】:selenium remote webdriver error硒远程webdriver错误
【发布时间】:2017-04-01 23:53:58
【问题描述】:

我尝试设置 selenium 的远程 webdriver。在我的远程机器上,硒服务器正在运行并接收我从本地发出的请求。但是在我的本地,为什么会出现这些错误?不知道

from selenium import webdriver
from selenium.webdriver.remote.webdriver import WebDriver as RemoteWebDriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from selenium.webdriver import ChromeOptions
import os

chromedriver = '/Users/guru/Downloads/chromedriver'
os.environ["webdriver.chrome.driver"] = chromedriver
driver = RemoteWebDriver(
    command_executor='http://ec2-XXX-XXX-XXX-XXX.compute.com:4444/wd/hub',
    desired_capabilities=DesiredCapabilities.CHROME)

driver.get('http://voot.com')

为什么会出现这个错误

Traceback (most recent call last):
  File "/Users/guru/python_projects/implement/a/format.py", line 11, in <module>
    desired_capabilities=DesiredCapabilities.CHROME)
  File "/Users/guru/python_projects/implement/a/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 92, in __init__
    self.start_session(desired_capabilities, browser_profile)
  File "/Users/guru/python_projects/implement/a/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 179, in start_session
    response = self.execute(Command.NEW_SESSION, capabilities)
  File "/Users/guru/python_projects/implement/a/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 236, in execute
    self.error_handler.check_response(response)
  File "/Users/guru/python_projects/implement/a/lib/python2.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 192, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: The path to the driver executable must be set by the webdriver.chrome.driver system property; for more information, see https://github.com/SeleniumHQ/selenium/wiki/ChromeDriver. The latest version can be downloaded from http://chromedriver.storage.googleapis.com/index.html
Stacktrace:
    at com.google.common.base.Preconditions.checkState (Preconditions.java:199)
    at org.openqa.selenium.remote.service.DriverService.findExecutable (DriverService.java:109)
    at org.openqa.selenium.chrome.ChromeDriverService.access$0 (ChromeDriverService.java:1)
    at org.openqa.selenium.chrome.ChromeDriverService$Builder.findDefaultExecutable (ChromeDriverService.java:137)
    at org.openqa.selenium.remote.service.DriverService$Builder.build (DriverService.java:296)
    at org.openqa.selenium.chrome.ChromeDriverService.createDefaultService (ChromeDriverService.java:88)
    at org.openqa.selenium.chrome.ChromeDriver.<init> (ChromeDriver.java:138)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0 (None:-2)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance (None:-1)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance (None:-1)
    at java.lang.reflect.Constructor.newInstance (None:-1)
    at org.openqa.selenium.remote.server.DefaultDriverProvider.callConstructor (DefaultDriverProvider.java:103)
    at org.openqa.selenium.remote.server.DefaultDriverProvider.newInstance (DefaultDriverProvider.java:97)
    at org.openqa.selenium.remote.server.DefaultDriverFactory.newInstance (DefaultDriverFactory.java:60)
    at org.openqa.selenium.remote.server.DefaultSession$BrowserCreator.call (DefaultSession.java:222)
    at org.openqa.selenium.remote.server.DefaultSession$BrowserCreator.call (DefaultSession.java:1)
    at java.util.concurrent.FutureTask.run (None:-1)
    at org.openqa.selenium.remote.server.DefaultSession$1.run (DefaultSession.java:176)
    at java.util.concurrent.ThreadPoolExecutor.runWorker (None:-1)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run (None:-1)
    at java.lang.Thread.run (None:-1)

Process finished with exit code 1

【问题讨论】:

    标签: python selenium selenium-webdriver web-scraping web-crawler


    【解决方案1】:

    在要运行测试的远程机器上设置以下内容。

    使用以下命令将 chromedriver 父文件夹路径设置为 System PATH:

    export PATH = /Users/prashant/Downloads/:$PATH   
    echo $PATH
    

    您应该将 pat 设置为 .exe 文件,如下所示:

    chromedriver = '/Users/guru/Downloads/chromedriver/chromedriver.exe'
    os.environ["webdriver.chrome.driver"] = chromedriver
    

    【讨论】:

    • 我在 OSX 上,我应该使用什么扩展?它不应该是 .exe
    • btw 文件信息说,chromedriver 是驱动程序的名称,包括扩展名
    • 当然,异常显示“selenium.common.exceptions.WebDriverException:消息:驱动程序可执行文件的路径必须由 webdriver.chrome.driver 系统属性设置;有关更多信息,请参阅@987654321 @.最新版本可以从chromedriver.storage.googleapis.com/index.htmlStacktrace下载:"
    • 你确定 os.environ 是在 mac OS 中设置属性的方法吗?
    • 使用chromedriver全路径时遇到什么错误?
    猜你喜欢
    • 2023-03-16
    • 2018-11-16
    • 2020-06-24
    • 1970-01-01
    • 2022-01-17
    • 1970-01-01
    • 2018-03-20
    • 1970-01-01
    • 2012-10-01
    相关资源
    最近更新 更多