You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python Selenium中Chromedriver权限错误问题求助

问题排查与解决办法

别着急,我帮你一步步捋清楚问题,先从代码本身的错误入手,再解决权限相关的问题:

一、代码里的几个明显错误

这些错误会直接导致脚本运行失败,先修正它们:

  • 导入语句写错了:你把两个import挤在一行了,Python不允许这么写,分开成两行就好:
    from selenium import webdriver
    from selenium.webdriver.common.keys import Keys
    import os
    
  • ChromeDriver初始化完全错了:你现在的写法是先创建一个浏览器实例,又把这个实例传给另一个Chrome构造函数,这肯定不对。正确的姿势是用executable_path参数直接指定chromedriver.exe的完整路径——注意你写的C:\WebDriver\bin\chromedriver_win32应该是解压后的文件夹,里面的chromedriver.exe才是真正要调用的程序,所以路径要写到exe:
    browser = webdriver.Chrome(executable_path=r'C:\WebDriver\bin\chromedriver_win32\chromedriver.exe')
    
  • browser变量找不到:你的Enter_Press()函数里用了browser,但这个变量是Kahoot_Spammer函数里的局部变量,外面的函数访问不到,会触发NameError。把Enter_Press定义在Kahoot_Spammer内部就能解决这个问题。

二、权限错误(WinError 5)的解决

修正代码后,再来处理权限被拒的问题:

  • 先确认路径绝对正确:一定要确保你指定的是chromedriver.exe的路径,不是文件夹路径,很多人在这里踩坑。
  • 重新设置权限:你之前的icacls命令可能没指定到exe文件,再运行一次试试,把路径换成exe的完整路径:
    icacls "C:\WebDriver\bin\chromedriver_win32\chromedriver.exe" /grant Users:F
    
  • 以管理员身份运行脚本:右键点击命令提示符,选“以管理员身份运行”,再执行你的Python脚本,普通用户权限有时候不足以启动chromedriver。
  • 检查版本匹配:Chrome浏览器和ChromeDriver的版本必须对应,如果你的Chrome是新版本,而驱动是旧的,也会出现奇怪的错误。去下载和你Chrome版本一致的ChromeDriver。
  • 临时关闭杀毒软件:有些杀毒软件会把chromedriver当成恶意程序拦截,临时关闭或者把它加入信任列表试试。

修正后的完整代码

我把所有问题都修正好了,你可以直接用这个版本测试:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import os

Game_Pin = input('Enter your PIN: ')
NickNAME = input('Enter your nickname: ')

def Kahoot_Spammer(Game_Pin, NickNAME):
    # 替换成你自己的chromedriver.exe完整路径
    browser = webdriver.Chrome(executable_path=r'C:\WebDriver\bin\chromedriver_win32\chromedriver.exe')
    browser.get('https://kahoot.it/')
    
    # 把Enter_Press放在内部,就能访问到browser变量了
    def Enter_Press():
        # 如果点击失败,可以试试用xpath定位,比如browser.find_element_by_xpath("//button[text()='Enter']").click()
        browser.find_element_by_name("Enter").click()
    
    # 加个隐式等待,防止页面没加载完就找元素
    browser.implicitly_wait(10)
    
    game_pin = browser.find_element_by_id("Game PIN")
    Name = browser.find_element_by_id("Nickname")
    
    game_pin.send_keys(Game_Pin)
    Enter_Press()
    
    Name.send_keys(NickNAME)
    Enter_Press()

Kahoot_Spammer(Game_Pin, NickNAME)

内容的提问来源于stack exchange,提问作者Golden Matrices

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 07:11:05