繁体   English   中英

Python线程AssertionError

[英]Python Threading AssertionError

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
import threading

global counter
counter = 0
driver = webdriver.PhantomJS()
driver.set_window_size(1920, 1080)

class ssbooster(threading.Thread):
    def login_logout(self):
        while True:
            driver.get('x')
            select = Select(driver.find_element_by_id('x'))
            select.select_by_visible_text('x')

            driver.find_element_by_id('x').send_keys('x')
            driver.find_element_by_id('x').send_keys('x')
            driver.find_element_by_name('button').click()
            global counter
            counter += 1
            print(counter)

x = ssbooster(ssbooster)
y = ssbooster(ssbooster)
x.start()
y.start()

该脚本使用的是PhantomJS,我不知道这是否是问题。 当我尝试运行此代码时,出现此错误。

Traceback (most recent call last):
  File "C:/Users/x/Desktop/x/x.py", line 25, in <module>
    x = ssbooster(ssbooster)
  File "C:\Users\x\AppData\Local\Programs\Python\Python36-32\lib\threading.py", line 780, in __init__
    assert group is None, "group argument must be None for now"
AssertionError: group argument must be None for now

我试图进行搜索,但是所有答案使我感到困惑。 如果有人可以告诉我是什么引起了问题以及如何解决问题,我将为您提供帮助。

谢谢!

您正在通过该类来初始化您的线程类

x = ssbooster(ssbooster)
y = ssbooster(ssbooster)
x.start()
y.start()

您只需要实例化您的类即可启动线程。 所以你的代码应该是

x = ssbooster()
y = ssbooster()
x.start()
y.start()

同样,您的代码也无法正常工作,因为您针对两个线程使用了通用驱动程序。 您需要为每个线程配备一个驱动程序,或者等待轮换使用该驱动程序,这无非是一项顺序任务。 请参阅下面的线程,该线程显示您关于线程的共享变量

Python在线程之间创建共享变量

另请参阅此文档,以了解如何为每个线程创建单独的驱动程序

硒线程:如何在多个线程中打开同一浏览器? 出于每个浏览器使用唯一代理的目的

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM