Мои знания HTTP явно слабые, поэтому я могу быть не совсем точным, но я думаю, что я достаточно близко, чтобы заставить вас двигаться.
Переместите это за пределы вашего l oop:
chrome.get sfSearchURL
Я подозреваю, что происходит, вы делаете запрос на новый сеанс с Get
. Selenium имеет неявное ожидание с Get
, поэтому сеанс создан, и URL-адрес этого сеанса не совпадает с URL-адресом, используемым в качестве условия выхода. Когда ваш код возвращается назад, он снова вызывает Get
, который отбрасывает ваш сеанс для нового запроса.
Это также приведет к переходу на MsgBox, в частности, он прекратит сеанс до его ветвления.
Я должен спросить об этом, хотя ...
"каждый раз, когда я открываю ChromeDriver, он открывает новый сеанс и забывает аутентификацию, поэтому я не могу иметь сеанс необходимость повторного входа в систему при каждом выполнении функции поиска "
- Что точно вы подразумеваете под" открытым ChromeDriver ", и как точно Вы открываете его?
Эта строка:
Set chrome = New Selenium.ChromeDriver
... гарантированно отбрасывает любой ранее проведенный сеанс в chrome
и открывает новый сеанс. Это по замыслу и именно то, что он должен делать, и что вы должны ожидать.
Если это часть большего l oop, то это пистолет для курения прямо здесь.
Можно создавать новые сеансы из одного экземпляра chrome
, но я использую пользовательский класс с различными интерфейсами для инициализации отдельных одновременных сеансов, поскольку это делает мой проект более управляемым и согласованным.
Также. Вы действительно должны включить больше, если ваш код для нас, чтобы помочь вам в наших силах. Я должен сделать вывод и угадать, что было написано или не написано.