python - Selenium 远程网络驱动程序错误

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

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

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

最佳答案

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

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

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

您应该按如下方式设置 pat till .exe 文件:

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

关于python - Selenium 远程网络驱动程序错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40671849/

相关文章:

python - 如何从python列表中删除英文字母

python - 在 Python 中描述模块和类的正确方法是什么?

json - Selenium 2 的安全性?

python - 错误 : [Errno 111] Connection refused - Python, Selenium

php webdriver - 等待警报而不终止测试用例

python - 使用 Selenium 在 Instagram 的搜索栏中输入内容

python - 允许从类 B 调用属于类 A 的方法 m()

python - Pandas 为一列附加多列

python - 从反斜杠分割字符串

java - TestNG Java Selenium 。 Thread.sleep() 的替代方法是什么