首页 > 解决方案 > selenium webdriver 缺少 1 个必需的位置参数:'self'

问题描述

我想创建一个自动登录,我想将扩展添加到 chromedriver。我收到以下错误:“TypeError:add_extension() 缺少 1 个必需的位置参数:'self'”

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import time
import os


usr = "example"
passw = "password"

options = webdriver.ChromeOptions
options.add_extension(extension="[user]\OneDrive\Desktop\Python\mpbjkejclgfgadiemmefgebjfooflfhl")
br = webdriver.Chrome()
br.get("examplesite")
time.sleep(7)
user = br.find_element_by_css_selector("#login-username")
user.clear()
user.send_keys(usr)
passwd = br.find_element_by_css_selector("#login-password")
passwd.clear()
passwd.send_keys(passw)
btn = br.find_element_by_class_name("m-btn__text")
btn.click()
time.sleep(5)
value = br.find_element_by_class_name("value")
value.text()



time.sleep(100)

标签: pythonselenium

解决方案


你没有初始化你的webdriver.ChromeOptions对象。尝试:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import time
import os


usr = "example"
passw = "password"

options = webdriver.ChromeOptions()
options.add_extension(extension="[user]\OneDrive\Desktop\Python\mpbjkejclgfgadiemmefgebjfooflfhl")
br = webdriver.Chrome()
br.get("examplesite")
time.sleep(7)
user = br.find_element_by_css_selector("#login-username")
user.clear()
user.send_keys(usr)
passwd = br.find_element_by_css_selector("#login-password")
passwd.clear()
passwd.send_keys(passw)
btn = br.find_element_by_class_name("m-btn__text")
btn.click()
time.sleep(5)
value = br.find_element_by_class_name("value")
value.text()

time.sleep(100)

注意后面的括号options = webdriver.ChromeOptions。括号创建一个新ChromeOptions对象;没有括号是指对象本身的类。


推荐阅读