Python selenium 保持浏览器打开

新手上路,请多包涵

出于营销原因,我正在使用 selenium 打开一些浏览器窗口。我只需打开我的营销资源,通过 selenium 登录并开始工作。

问题是,在执行代码后,selenium 关闭了窗口。

到目前为止,所有解决方案都没有多大帮助。

我有 13 个浏览器窗口 atm.,它们看起来像这样:

 def open_instagram():
    try:
        # Connect
        chrome_options = webdriver.ChromeOptions()
        chrome_options.add_argument("--incognito")
        browser = webdriver.Chrome('drivers/chromedriver.exe', chrome_options=chrome_options)
        browser.set_window_size(1800, 900)
        browser.get("https://www.instagram.com/accounts/login/?hl=de")
        browser.find_element(By.NAME, 'username').send_keys('MYEMAIL', Keys.TAB, 'MYPW', Keys.ENTER)
    except Exception as e:
        print (e, 'Instagram')

open_instagram()

我找到的最接近的解决方案是在我的脚本末尾添加它,但不知何故它只会保持 5 个窗口打开,而不是关闭 5 个窗口并打开接下来的 5 个新窗口:

 while True:
    pass

我只希望 selenium 保持所有浏览器窗口打开,直到我手动关闭它们。

原文由 Roman 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.2k
2 个回答

如果您希望 chrome 和 chromedriver 保持打开状态,则必须在启动 chromedriver 时使用“分离”选项。

在你的情况下添加:

 from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_experimental_option("detach", True)

在将选项传递给浏览器之前

browser = webdriver.Chrome('drivers/chromedriver.exe', chrome_options=chrome_options)

或者 您可以在调试模式下运行代码,在末尾设置断点,当它暂停时“终止”程序并接管浏览器(如果您愿意),但这仅适用于 IDE。

编辑-为清楚起见添加了导入

原文由 AnkDasCo 发布,翻译遵循 CC BY-SA 4.0 许可协议

您还可以添加 global browser 像这样:

 def open_instagram():
    try:
        # Connect
        chrome_options = webdriver.ChromeOptions()
        chrome_options.add_argument("--incognito")
        global browser # this will prevent the browser variable from being garbage collected
        browser = webdriver.Chrome('drivers/chromedriver.exe', chrome_options=chrome_options)
        browser.set_window_size(1800, 900)
        browser.get("https://www.instagram.com/accounts/login/?hl=de")
        browser.find_element(By.NAME, 'username').send_keys('MYEMAIL', Keys.TAB, 'MYPW', Keys.ENTER)
    except Exception as e:
        print (e, 'Instagram')

open_instagram()

资源

原文由 Josh Correia 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏