【发布时间】:2020-06-09 06:15:38
【问题描述】:
当我运行这段代码时,其中一个 selenium 窗口没有关闭
import multiprocessing
from selenium import webdriver
class Worker:
def __init__(self):
self.driver = webdriver.Chrome()
def run(self):
self.driver.get('https://www.google.com')
processes = []
for i in range(2):
worker = Worker()
process = multiprocessing.Process(target=worker.run)
process.start()
processes.append(process)
for any_name in processes:
any_name.terminate()
但如果我将变量名从 any_name 更改为 worker,那么所有 selenium 窗口都将关闭。为什么会这样?
PS 版本:python 3.7、chromedriver 83、selenium 3.141.0
【问题讨论】:
-
呵呵,这也是我的复制品。我无法解释为什么,但如果您用于最终
for循环的变量名称与您分配给Worker的变量名称相同,它只会关闭两个窗口。例如。如果将worker = Worker()更改为blah = Worker(),则必须将any_name更改为blah才能关闭窗口。
标签: python selenium process multiprocessing terminate