You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Python Selenium报错OSError: [WinError 193] 求助解决方案

解决Kahoot刷屏脚本的WinError 193及代码问题

嘿,我看了你的问题和代码,首先那个WinError 193的核心原因很明确——你把ChromeDriver的路径指向了压缩包文件chromedriver_win32.zip),而不是解压后的可执行文件chromedriver.exe。咱们一步步来解决所有问题:

第一步:修复ChromeDriver路径问题

  1. 先把你下载的chromedriver_win32.zip解压到一个文件夹里,比如解压到C:\\Users\\ovvip\\Downloads\\chromedriver_win32
  2. 在代码里把chromedriver的路径改成指向解压后的exe文件:
    chromedriver = 'C:\\Users\\ovvip\\Downloads\\chromedriver_win32\\chromedriver.exe'
    

第二步:修复代码里的其他错误

你的代码还有几个小问题,比如元素定位错误、调用selenium的方式不对,我整理了修正后的完整代码,注释里标了修改点:

# 导入语句分开写,符合Python规范
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

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

def Enter_Press(browser):
    # 改用回车代替点击按钮,避免元素定位失败(Kahoot的按钮选择器经常变动)
    active_element = browser.switch_to.active_element
    active_element.send_keys(Keys.ENTER)

def Kahoot_Spammer(Game_Pin, NickNAME):
    # 指向解压后的chromedriver.exe
    chromedriver = 'C:\\Users\\ovvip\\Downloads\\chromedriver_win32\\chromedriver.exe'
    browser = webdriver.Chrome(chromedriver)
    browser.get('https://kahoot.it/')
    
    # Kahoot的游戏PIN输入框实际id是"game-input",不是"Game PIN"
    game_pin = browser.find_element_by_id("game-input")
    # 昵称输入框实际id是"nickname",不是"Nickname"
    name_input = browser.find_element_by_id("nickname")
    
    game_pin.send_keys(Game_Pin)
    Enter_Press(browser)  # 传入browser对象供函数使用
    name_input.send_keys(NickNAME)
    Enter_Press(browser)

Kahoot_Spammer(Game_Pin, NickNAME)

额外注意事项

  • 确保你的ChromeDriver版本和电脑上安装的Chrome浏览器版本完全匹配,版本不兼容也会导致启动失败
  • 你切换到32位Python的思路是对的,32位ChromeDriver搭配32位Python没问题,只要路径正确就不会有架构不兼容的问题
  • 最后提醒一下:这类刷屏脚本可能违反Kahoot的使用条款,建议只在自己的测试场景下使用哦

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

火山引擎 最新活动