为了安装Selenium,步骤3(此站点表示需要在PATH中安装chromedriver文件。我使用的是无法直接访问系统 PATH 的工作计算机。我尝试在本地 PATH(我在 Windows 7 上)变量链中列出,如下所示:C:\Users\mknerr\AppData\Local\Programs\Python\Python\Python36-32\Scripts\;C:\Users\mknerr\AppData\Local\Programs\Python\Python36-32\;C:\Users\mknerr\AppData\Local\atom\bin;C:\Users\mknerr\Programs\ChromeDriver\
(.exe位于 ChromeDriver 文件夹中)
当我使用 webDriver.Chrome() 运行脚本时,我仍然会收到一个 WebDriverException,chromedriver 需要在我的 PATH 中。如果有人知道为什么这在我的本地 PATH 中不起作用,我很想听听。
但是,我真正的问题是,当我将此脚本分发给我团队的其他成员时,他们可能会遇到相同的问题,因为我的脚本将调用chromedriver,他们都不会安装,更不用说在他们的PATH中了。Python 可以直接在 PATH 中安装程序或依赖项,这样他们就不必直接访问环境变量吗?我可以保证没有人会觉得这样做很舒服。
您可以将chromedriver.exe放在可执行文件所在的文件夹中。只需在程序旁边运行驱动程序即可。
在我们的内部自动化框架中,我们实际上只是将Chromedriver可执行文件作为框架的一部分分发,与框架的入口点位于同一文件夹中。
然后,每当我们需要浏览器会话时,我们都会执行类似操作:
import os
from selenium import webdriver
chromedriver_location = os.path.join(
os.path.dirname(os.path.abspath(__file__)), 'chromedriver.exe')
context.browser = webdriver.Chrome(executable_path=chromedriver_location)
当然,chromedriver.exe
是可执行文件的默认Windows名称;更改为您需要的任何名称。
这避免了除安装框架本身之外的任何用户设置。不会弄乱PATH或任何其他本地文件。