测试积点老人 发表于 2022-5-13 11:15:26

python selenium在多线程情况下,中途执行失败视窗虽已关闭仍在任误管理器背景执行

各位好
我的程序在跑到一半抱错时仍会在背景执行
这是因为线程没有被删除吗
因为我目前都是把 driver.quit() 这种挂在程式码的最后边
所以他得要全部流程都跑对才有办法关闭
想请问我该如何在程序失败时将线程完全关闭()
谢谢
from datetime import datetime
from selenium import webdriver
import threading
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options

def selenium_mult():
    chrome_options = Options()
    chrome_options.add_argument("--headless")
    ser=Service('./chromedriver')
    driver = webdriver.Chrome(service = ser,options=chrome_options)
    driver.set_window_size(540,480)
    driver.get('https:/website')

    WebDriverWait(driver,10,1).until(EC.visibility_of_element_located((By.XPATH, '//*[@id="btn"]/div/div/button')))
    driver.find_element(By.XPATH, '//*[@id="btn"]/div/div/button').click()#click button 1
    Ftime = datetime.now()

    WebDriverWait(driver,30,1).until(EC.visibility_of_element_located((By.XPATH, '//*[@id="btn"]/div/div/div/div/div')))
    driver.find_element(By.XPATH, '//*[@id="btn"]/div/div/div/div/div').click() #click button 2
    driver.quit()
if __name__ == '__main__':
    for i in range(5):
      t = threading.Thread(target=selenium_mult)
      t.start()
今天可能在按下button 1 失败然后就报错关闭了
但有时在任务管理器背景还是存在WebChrome

qqq911 发表于 2022-5-16 10:35:03

放在finally里面

bellas 发表于 2022-5-16 10:51:23

打个断点输出下看看

海海豚 发表于 2022-5-16 14:22:01

将关闭浏览器的方法放在main里面

jingzizx 发表于 2022-5-16 16:24:31

确认下线程是否真正关闭
页: [1]
查看完整版本: python selenium在多线程情况下,中途执行失败视窗虽已关闭仍在任误管理器背景执行