首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我的类实例在遍历for循环时消失。

我的类实例在遍历for循环时消失。
EN

Stack Overflow用户
提问于 2019-10-15 23:26:16
回答 1查看 41关注 0票数 0

所以我试图同时打开一系列的网页浏览器。在调用单个类实例(如果是object实例时纠正我),这样做没有问题。我试图使我的代码更漂亮,并通过for循环将args提供给实例。浏览器打开得很好,但随后它们都消失了。有人告诉我,这与垃圾收集有关,但我不知道如何绕过它。请帮帮忙。

代码语言:javascript
复制
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()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-15 23:57:01

驱动程序超出范围,导致浏览器关闭。将驱动程序添加到某个全局变量中。

代码语言:javascript
复制
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()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58403785

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档