簡體   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