Selenium chromedriver PATH错误无法解决

时间:2018-11-26 03:46:40

标签: python selenium path selenium-chromedriver

因此,我一直试图按照这个YouTube教程(https://www.youtube.com/watch?v=BGU2X5lrz9M)作为一个快速有趣的项目,向自己介绍硒,但是我已经遇到了问题。每当我运行代码时,都会不断出现此错误:“ chromedriver”可执行文件必须位于PATH中。我已经搜索了很多次问题,将chromedriver.exe移到了C:/目录中,以使事情变得更容易,并且尽我所能使用环境变量,但仍然无法解决。请帮帮我! 这是我正在运行的代码

# This bot is made following this YouTube tutorial: https://www.youtube.com/watch?v=BGU2X5lrz9M
# All the import crap
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time


driver = webdriver.Chrome("C:\\chromedriver.exe")


class InstaBot:

    def __init__(self, username, password):
        self.username = username
        self.password = password
        self.driver = webdriver.Chrome()

    def close_browser(self):
        self.driver.close()

    def login(self):
        global driver
        driver = self.driver
        driver.get("https://www.instagram.com/accounts/login/?source=auth_switcher")
        time.sleep(2)
        # "//a[@href'accounts/login']"
        # "//input[@name='username']"
        # "//input[@name='password']"


georgeIG = InstaBot("NotGonnaShowToStackOverflow", "NotGonnaShowToStackOverflow")
georgeIG.login()

这是我尝试使用环境变量的内容。 enter image description here

enter image description here

3 个答案:

答案 0 :(得分:0)

在您链接的视频中,命令pip install selenium将处理驱动程序到路径的添加。

我假设您尝试在Windows上模拟它,而您在理解如何使用PATH变量时遇到了麻烦。 This related question on SO讨论了如何注册.exe,以便它在全球范围内可用,这可能会对您有所帮助。

您无法像完成操作一样直接在PATH变量中注册可执行文件,您的PATH应该仅包含目录。尝试将chromedriver.exe文件移到PATH中的一个文件夹中,然后再次运行命令。

或者,您可以创建一个文件夹,例如c:\buildtools,将其添加到PATH中,然后将chromedriver.exe放入该文件夹中,然后再次运行命令。

答案 1 :(得分:0)

尝试此设置:

# Setup our chrome preferences.
chromeOptions = webdriver.ChromeOptions()
# Change this variable to the path of the chromedriver you downloaded.
chromedriver = "D:\Downloads\chromedriver_win32\chromedriver.exe"

driver = webdriver.Chrome( executable_path = chromedriver, 
chrome_options = chromeOptions )

答案 2 :(得分:0)

就我个人而言,这是设置环境变量后重新启动机器的问题。我知道这听起来很疯狂,但对我来说,它奏效了。

我知道这个问题已经解决了。我只是想为将来遇到这个问题的任何人提供我自己的意见。