Избегайте закрытия браузера - PullRequest
0 голосов
/ 06 апреля 2019

Я написал макрос на VBA, используя Selenium.ChromeDriver, который открывает сайт и дает ему различные действия.Но проблема в том, что если в макросе возникает ошибка и я нажимаю «Стоп» в режиме отладки, то браузер закрывается.Проблема в том, что когда вы закрываете браузер и открываете его, вы должны каждый раз вводить логин и пароль.Как можно избежать закрытия браузера, открытого через Chrome Driver, если макрос заканчивается или возникает ошибка?Сделал так

Public Driver as new ChromeDriver

, но это не помогает, браузер закрывается.

1 Ответ

0 голосов
/ 06 апреля 2019

Нужно больше кода, но несколько указателей

  1. При возникновении ошибки нажмите debug вместо end, и браузер должен остаться открытым
  2. Не использовать .Quit если вы хотите, чтобы автоматический браузер оставался открытым в конце подпункта.Однако вам нужно будет захватить идентификатор сеанса, если вы хотите переподключиться с этим экземпляром или передать объект драйвера любому принимающему подчиненному устройству.Просто запомните в какой-то момент, чтобы выйти.

Вот как вы открываете другую вкладку:

 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...