如何将带有参数的类传入ThreadPoolExecutorpython
我知道如何在函数中使用线程,但是类呢?我不确定应该如何正确格式化它,以便它接受驱动程序作为参数。我想这就是这里发生的事情,任何帮助都将不胜感激如何将带有参数的类传入ThreadPoolExecutorpython,python,python-3.x,multithreading,python-multithreading,Python,Python 3.x,Multithreading,Python Multithreading,我知道如何在函数中使用线程,但是类呢?我不确定应该如何正确格式化它,以便它接受驱动程序作为参数。我想这就是这里发生的事情,任何帮助都将不胜感激 from selenium import webdriver from time import sleep import concurrent.futures import random import selenium class createMail: def __init__(self, full, driver): s
from selenium import webdriver
from time import sleep
import concurrent.futures
import random
import selenium
class createMail:
def __init__(self, full, driver):
self.full = full
self.driver = driver
def open_broswer(self, full, driver):
a, b = full
print(f'first name: {a}')
print(f'last name: {b}')
def name_generator():
first_name_choice = 'my first name'
last_name_choice = 'my last name'
return first_name_choice, last_name_choice
def address_generator(full_name):
a, b = full_name
return a, b
driver = webdriver.Chrome('C:/Users/husse/Downloads/chromedriver_win32/chromedriver.exe')
"""
# this is the setup I had before
create_user = createMail('', '')
create_user.open_broswer(address_generator(name_generator()), driver)
"""
if __name__ == '__main__':
with concurrent.futures.ThreadPoolExecutor() as executor:
create_user = createMail('', '')
f1 = executor.submit(create_user.open_broswer(address_generator(name_generator()), driver))
返回的内容和错误消息:
first name: my first name
last name: my last name
Traceback (most recent call last):
File "c:\Users\husse\Python\TheEverBot\threadtest.py", line 46, in <module>
f1 = executor.submit(create_user.open_broswer(address_generator(name_generator()), driver))
File "c:\Users\husse\Python\TheEverBot\threadtest.py", line 20, in open_broswer
driver.get('www.google.com')
File "C:\Users\husse\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 333, in get
self.execute(Command.GET, {'url': url})
File "C:\Users\husse\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "C:\Users\husse\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.InvalidArgumentException: Message: invalid argument
(Session info: chrome=89.0.4389.128)
名字:我的名字
姓:我的姓
回溯(最近一次呼叫最后一次):
文件“c:\Users\husse\Python\TheEverBot\threadtest.py”,第46行,在
f1=执行者.提交(创建用户.打开浏览器(地址生成器(名称生成器()),驱动程序))
文件“c:\Users\husse\Python\TheEverBot\threadtest.py”,第20行,在open\u broswer中
driver.get('www.google.com')
文件“C:\Users\husse\AppData\Local\Programs\Python\39\lib\site packages\selenium\webdriver\remote\webdriver.py”,第333行,在get中
self.execute(Command.GET,{'url':url})
文件“C:\Users\husse\AppData\Local\Programs\Python\39\lib\site packages\selenium\webdriver\remote\webdriver.py”,第321行,在execute中
self.error\u handler.check\u响应(响应)
文件“C:\Users\husse\AppData\Local\Programs\Python\39\lib\site packages\selenium\webdriver\remote\errorhandler.py”,第242行,在check\u响应中
引发异常类(消息、屏幕、堆栈跟踪)
selenium.common.exceptions.InvalidArgumentException:消息:参数无效
(会话信息:chrome=89.0.4389.128)