避免关闭浏览器

时间:2019-04-06 14:38:54

标签: excel vba selenium web-scraping selenium-chromedriver

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

Public Driver as new ChromeDriver

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

1 个答案:

答案 0 :(得分:0)

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

  1. 发生错误时,单击debug而不是end,浏览器应保持打开状态。
  2. 如果您希望自动浏览器在子行末保持打开状态,请不要使用.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