避免关闭浏览器

问题描述 投票:0回答:1

我使用Selenium.ChromeDriver在VBA上编写了一个宏,它打开了网站并为其提供了各种操作。但问题是,如果宏中发生错误,我在调试模式下单击“停止”,则浏览器关闭。问题是当您关闭浏览器并打开它时,您必须每次都输入您的登录名和密码。如果宏结束或发生错误,如何避免关闭通过Chrome驱动程序打开的浏览器?这样做了

Public Driver as new ChromeDriver

但这没有帮助,浏览器关闭。

excel vba selenium web-scraping selenium-chromedriver
1个回答
0
投票

需要一些更多的代码,但需要一些指针

  1. 发生错误时,单击debug而不是end,浏览器应保持打开状态
  2. 如果您希望自动浏览器在sub结束时保持打开状态,请不要使用.Quit。但是,如果您希望使用reconnect with that instance,则需要获取会话ID,或者将驱动程序对象传递给任何接收子。只记得在某些时候退出。

以下是打开另一个标签的方法:

 Option Explicit

'download selenium https://github.com/florentbr/SeleniumBasic/releases/tag/v2.0.9.0
'Ensure latest applicable driver e.g. ChromeDriver.exe in Selenium folder
'VBE > Tools > References > Add reference to selenium type library
Public Sub DownloadFile()
    Dim d As WebDriver
    Set d = New ChromeDriver
    Const URL = "www.something/login/"

    With d
        .Start "Chrome"
        .get URL
        .FindElementById("name").SendKeys ""
        .FindElementById("email").SendKeys ""
        .FindElementByCss("[type=submit]").Click
        Application.Wait Now + TimeSerial(0, 0, 5) '< better to have a wait condition for something on the post login page
        .ExecuteScript "window.open(" & Chr$(34) & "postloginUrl" & Chr$(34) & ",'_blank');"
        Stop
        .Quit
    End With
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.