wsl设置chromedriver.exe环境变量调用windows下的chromedriver及chrome浏览器进行自动化测试或爬取网页内容

wsl设置chromedriver.exe环境变量调用windows下的chromedriver及chrome浏览器进行自动化测试或爬取网页内容

前言

为啥要用wsl呢?大家应该都知道理由了,启动速度快,占用内存小,还能直接调用windows的各种资源,在平常不使用linux的时候可以安心享受windows的便利,这么方便的工具就是我用它的原因了。

然后近来想学习一些selenium这样的浏览器自动化测试工具,每次将驱动chromedriver.exe放在脚本目录肯定很不方便了,所以才想要设置chromedriver.exe环境变量,从而使python可以自动去找到驱动器,那就方便多了。

但是在这个过程中遇到了困难,网上居然也没有什么有效的解决方案,就自己写了。

我只讲我的环境,也就是chromedriver的设置方法,其他浏览器设置方法都类似。

环境及工具包

  • 主系统:win10
  • 子系统:Ubuntu 18
  • wsl调用
  • chromedriver.exe驱动及chrome浏览器

解决方法

1.windows下加环境变量

本来是打算在Linux中直接设置环境变量的,然后发现其实wsl 2.0已经直接和windows中的环境变量互通了,所以直接在windows中设置环境变量即可:

我的电脑-右键属性-高级系统设置-环境变量-系统变量中的Path

直接添加一条路径:{chromedriver.exe驱动所在的文件夹},如下:

在这里插入图片描述

然后确定,wsl就可以直接读取到环境变量,可以用以下语句检测验证:

echo $PATH

如果没有下载chromedriver驱动的话直接去下面网址找相应版本下载,不过我想应该不会吧:

https://sites.google.com/a/chromium.org/chromedriver/downloads

2.添加软链接

经过上面的步骤之后其实windows已经能正确找到chromedriver.exe的位置并且运行了,如果用windows上的python解析器其实已经可以正常解析了,但是问题是,我的python解析器在Linux子!系!统!上!,这样就无法正常识别使用驱动。

其实wsl是可以直接识别并运行exe文件的,直接在wsl中输入notepad.exe就可以跳出记事本的界面:
在这里插入图片描述

这点我觉得碉堡了,子系统可以直接调用windows上的可执行文件并且在windows上的图形化界面中显示出来,但是没办法啊,奈何wsl还是linux的本质啊,linux中带.exe后缀的软件并不是可执行文件,这也就造成了wsl虽然能够执行exe文件,但是不会把它当作可执行文件

所以,在wsl中的python解析器在执行时会找chromedriver,而不是chromedriver.exe!

随便一个python测试脚本:

from selenium import webdriver
driver = webdriver.Chrome()

执行脚本就会有这样的报错:

在这里插入图片描述

即找不到路径。

解决方法倒也简单,直接在驱动器目录下创建一个名为chromedriver,并且指向chromedriver.exe的软链接即可(我真是个小机灵鬼):

cd 驱动目录路径
ln -s chromedriver.exe chromedriver

这样,在进行导入就不会再报错了:

在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: 在 Windows 中执行 "notepad.exe /etc/wsl.conf" 找不到系统路径的原因是因为 /etc/wsl.conf 是一个 Linux 系统中的路径,而不是 Windows 系统中的路径。 Windows Subsystem for Linux (WSL) 是一个可以在 Windows 中运行 Linux 命令行程序的功能,但是 Windows 程序和 Linux 程序在文件系统上是独立的。因此,在 Windows 中,无法直接访问 Linux 系统的文件路径,例如 /etc/wsl.conf。 如果要在 Windows 中编辑 WSL 的配置文件,可以使用 Windows 上的文本编辑器,如 Notepad,通过 WSL 命令行将文件复制到 Windows 中的临时目录,然后再在 Windows 中打开文件进行编辑。例如,可以使用以下命令: ``` cp /etc/wsl.conf /mnt/c/temp/wsl.conf notepad.exe C:\temp\wsl.conf ``` ### 回答2: 当在Windows中执行`notepad.exe /etc/wsl.conf`命令时,出现找不到系统路径的错误,可能有以下几个原因: 1. WSL未安装或未启用:Windows Subsystem for LinuxWSL)是一个在Windows上运行Linux操作系统的兼容层,它需要在系统中进行安装并启用才能执行Linux命令。如果未安装WSL或未启用WSL,系统将无法找到`/etc/wsl.conf`路径。 2. WSL版本不兼容:如果WSL版本较旧且不支持将Linux文件系统与Windows文件系统进行集成,那么操作系统将无法找到`/etc/wsl.conf`路径。在这种情况下,您可以尝试升级WSL或使用适用于您的WSL版本的其他命令。 3. 文件路径错误:`/etc/wsl.conf`是Linux系统中存储WSL配置文件的位置。在Windows下,文件路径与Linux系统不同,因此操作系统将无法找到该路径。您可以尝试使用Windows的文件浏览器或命令行找到正确的文件路径。 4. 文件不存在:`/etc/wsl.conf`是Linux系统中的一个文件,如果该文件不存在,操作系统将报错。请确保在执行命令之前在WSL环境中创建了相应的`wsl.conf`文件。 总之,要解决"找不到系统路径"的错误,您需要确保WSL已正确安装和启用,使用正确的文件路径,并确保所需的文件存在于该路径中。如果问题仍然存在,您可能需要参考WSL的官方文档或进行更详细的排查。 ### 回答3: 当在Windows系统上执行"notepad.exe /etc/wsl.conf"命令时,出现找不到系统路径的错误,可能有以下几个原因: 1. 文件路径错误:"/etc/wsl.conf"是一个Linux系统的文件路径,而Windows系统的文件路径是以驱动器字母和反斜杠(\)开头的。因此,当执行该命令时,Windows系统无法找到相应的路径。 2. WSL未安装或未启用:WSLWindows Subsystem for Linux)是Windows系统上的Linux子系统,可以允许在Windows上运行Linux应用程序。如果WSL未安装或未启用,那么在执行Linux命令时会出现找不到系统路径的错误。 3. 文件不存在:如果文件"/etc/wsl.conf"在WSL子系统中不存在,执行该命令时会出现找不到系统路径的错误。在执行命令之前,应确保文件存在于正确的路径中。 解决此问题的方法是: 1. 通过更改命令来使用适用于Windows的正确文件路径,例如使用"notepad.exe C:\path\to\wsl.conf"。 2. 确保WSL已正确安装并启用。可以通过在Windows的控制面板或设置中搜索"启用或关闭Windows功能"来检查WSL是否已安装并启用。 3. 在WSL子系统中检查文件是否存在于"/etc/wsl.conf"路径中。如果文件不存在,可以创建新的wsl.conf文件并将其放置在该位置。 总之,出现找不到系统路径的错误可能是由于文件路径错误、WSL未安装或未启用,以及文件不存在所致,需要根据具体情况进行相应的解决方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值