所以我试图同时打开一系列的网页浏览器。在调用单个类实例(如果是object实例时纠正我),这样做没有问题。我试图使我的代码更漂亮,并通过for循环将args提供给实例。浏览器打开得很好,但随后它们都消失了。有人告诉我,这与垃圾收集有关,但我不知道如何绕过它。请帮帮忙。
from selenium import webdriver
from threading import Thread
class Dashboard(Thread):
def __init__(self, position, url):
super().__init__()
self.position = position
self.url = url
def run(self):
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--window-size=256,160')
#chrome_options.add_argument('--start-maximized')
chrome_options.add_argument(self.position)
self.driver = webdriver.Chrome(options=chrome_options)
self.driver.get(self.url)
pos = ['--window-position=100,100', '--window-position=1000,1000']
web = ['https://www.youtube.com', 'https://www.facebook.com']
for a, b in zip(pos, web):
screen = Dashboard(a, b).start()发布于 2019-10-15 23:57:01
驱动程序超出范围,导致浏览器关闭。将驱动程序添加到某个全局变量中。
from selenium import webdriver
from threading import Thread
all_drivers = []
class Dashboard(Thread):
def __init__(self, position, url):
super().__init__()
self.position = position
self.url = url
self.driver = None
def run(self):
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--window-size=256,160')
# chrome_options.add_argument('--start-maximized')
chrome_options.add_argument(self.position)
self.driver = webdriver.Chrome(options=chrome_options)
self.driver.get(self.url)
all_drivers.append(self.driver)
pos = ['--window-position=100,100', '--window-position=1000,1000']
web = ['https://www.youtube.com', 'https://www.facebook.com']
for a, b in zip(pos, web):
screen = Dashboard(a, b).start()
# close the drivers once your purpose is solved
for driver in all_drivers:
driver.quit()https://stackoverflow.com/questions/58403785
复制相似问题