【问题标题】:What is default location of ChromeDriver and for installing Chrome on WindowsChromeDriver 的默认位置是什么以及在 Windows 上安装 Chrome
【发布时间】:2018-09-22 02:48:39
【问题描述】:

我需要在 Windows 操作系统上安装 chromedriver。在下面的文章中,他们指定:

https://sites.google.com/a/chromium.org/chromedriver/getting-started

"...ChromeDriver 要求您默认安装 Chrome 您平台的位置...”

但我不确定默认位置是什么?

Mac 操作系统上是/usr/local/bin

有了这个,我也不必明确指定路径或设置系统路径。

如何在 Windows 操作系统上实现相同的功能?

【问题讨论】:

标签: google-chrome selenium selenium-webdriver webdriver selenium-chromedriver


【解决方案1】:

这是两个相互关联的重要问题,如下所示:

  • ChromeDriver 的默认位置
  • Chromium/Google Chrome 的默认位置

Chrome 驱动程序

您可以从ChromeDriver - WebDriver for Chrome 页面下载最近发布的ChromeDriver,并将其放置在系统中的任何位置。当您初始化 ChromeDriver 时,您需要传递 ChromeDriver 二进制文件的绝对路径。

此外,您还可以通过以下步骤帮助WebDriver找到下载的ChromeDriver可执行文件:

  • 在您的系统 PATH 环境变量中包含 ChromeDriver 位置。
  • (Java) 通过webdriver.chrome.driver系统属性指定ChromeDriver的位置
  • (Python) 实例化webdriver.Chrome()时指定ChromeDriver的位置

铬/谷歌浏览器

最重要的事实是您需要确保 Chromium/Google Chrome 安装在符合 ChromeDriver - Requirements 的公认位置,因为服务器希望您拥有 Chromium/Google Chrome 根据快照安装在每个系统的默认位置:

注意:对于 Linux 系统,ChromeDriver 期望 /usr/bin/google-chrome 成为实际 Chrome 二进制文件的符号链接强>。您还可以覆盖 Using a Chrome executable in a non-standard location 之后的 Chrome 二进制位置

示例代码块

  • Java

    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.chrome.ChromeDriver;
    
    public class A_Chrome 
    {
        public static void main(String[] args) 
        {
            // Optional : if not specified WebDriver will search your system PATH environment variable for locating the chromedriver
            System.setProperty("webdriver.chrome.driver", "C:\\path\\to\\chromedriver.exe");
            WebDriver driver =  new ChromeDriver();
            driver.get("https://www.google.co.in");
            System.out.println(driver.getTitle());
            driver.quit();
        }
    }
    
  • Python

    from selenium import webdriver
    
    # Optional argument : if not specified WebDriver will search your system PATH environment variable for locating the chromedriver
    driver = webdriver.Chrome(executable_path=r'C:\path\to\chromedriver.exe')
    driver.get('https://www.google.co.in')
    print("Page Title is : %s" %driver.title)
    driver.quit()
    

【讨论】:

    【解决方案2】:

    对于 Selenium 必须用来打开浏览器的任何驱动程序(chromedrivergeckodriver 等),您不必担心它的安装位置,只要在 PATH 变量中设置即可.

    如果您在操作系统的PATH 变量中设置了它,您必须能够从commandcmd 运行它(确保它正常工作总是好的)。

    以下是设置方法(附加到现有值):

    然后你可以按如下方式实例化它:

    WebDriver driver = new FirefoxDriver();
    

    WebDriver driver = new ChromeDriver();
    

    希望对你有所帮助。

    【讨论】:

    • 感谢您的 youtube 视频链接,我发现我需要将 chromedriver 放在 c:\program files\any_folder 下。但是我需要在 PATH 下提及这条路径,但它仍然没有解决我的问题,为什么 Windows 不知道 chromedriver 放在 c:\program files 下,为什么我需要在 PATH 下明确提及该路径?使用 Mac/Ubuntu,如果我只是放在 /user/local/bin 下,chromedriver 可以正常工作
    • 在 Mac/Ubuntu 上运行良好,因为/usr/local/bin 在 PATH 中(usr 是用户系统资源的缩写,而不是用户)。要检查这一点,请在 Linux/Mac 中打开一个终端并输入 env | grep PATH 以检查它是否存在。因此,在 Linux/Mac 中,当您安装/复制到 /usr/local/bin 时,您已经安装在 PATH 变量看到的文件夹中。我不确定命令 env 是否适用于 Windows,但您仍然可以运行 echo %PATH% 以显示它列出的所有目录。
    • 此解决方案不再有效。即使 chromedriver.exe 在路径上,你也会得到这个错误: java.lang.IllegalStateException: The path to the driver executable must be set by the webdriver.chrome.driver system property;有关详细信息,请参阅github.com/SeleniumHQ/selenium/wiki/ChromeDriver。最新版本可从chromedriver.storage.googleapis.com/index.html下载
    【解决方案3】:

    Windows 上的默认位置是:C:\Program Files\(select the folder you want to put your file)\chromedriver.exe

    在您的 Selenium 代码中,正确粘贴驱动程序路径,例如:

    System.setProperty("webdriver.chrome.driver", "C:\\Program Files\\Java\\chromedriver.exe");
    

    【讨论】:

    • 如果我不想在程序中对该路径值进行硬编码,还有其他选择吗?在 Mac OS 中,如果我不需要执行所有这些解决方法,因为它知道默认位置
    • 尝试将“chromedriver.exe”文件粘贴到 selenium 文件中(selenium 安装文件)。希望它有效
    • 我不确定默认安装位置是什么意思。无论如何,它并没有安装它;只是您下载并保留文件的副本。如果您不想对位置进行硬编码,请将 chromedriver.exe 文件保留在 prj 根目录中并使用 System.getProperty("user.dir") 并附加 chromedriver.exe 以使其成为相对路径
    • 谢谢,我发现我需要将 chromedriver 放在 c:\program files\any_folder 下。但是我需要在 PATH 下提及这条路径,但它仍然没有解决我的问题,为什么 Windows 不知道 chromedriver 放在 c:\program files 下,为什么我需要在 PATH 下明确提及该路径?使用 Mac/Ubuntu,如果我只是放在 /user/local/bin 下,chromedriver 可以正常工作
    【解决方案4】:

    如果您正在使用带有“virtualenv”的 Python 虚拟环境。您可以将 chromedriver.exe 放到虚拟环境的 bin/ 目录中。

    > virtual venv
    > cd Users/username/Downloads/chromedriver(.exe) working/directory/path/venv/bin/
    

    然后尝试使用虚拟环境的解释器运行 Python 脚本。

    【讨论】:

      【解决方案5】:

      我的 chromedriver 包安装在我的 Python 文件夹中。如果我没记错的话,我是用 pip 安装的。奇怪的是 chromedriver 文件夹中没有 chromedriver.exe 文件,我不得不单独下载并移动到 site-packages 文件夹中。

      C:\\Users\\_USERNAME_\\AppData\\Local\\Programs\\Python\\Python37\\Lib\\site-packages\\chromedriver
      

      (我在路径中使用双 \:s,因为单个 \ 加上字母 U(在 C:-->\U

      SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape
      

      )

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-04-14
        • 1970-01-01
        • 1970-01-01
        • 2018-09-16
        • 2017-10-08
        • 1970-01-01
        • 2019-03-25
        • 1970-01-01
        相关资源
        最近更新 更多