Что делать, если при парсинге selenium находит элемент, но выдает пустые строки?
Поле .text возвращает только видимый текст. Здесь же он появляется после наведение курсора. Здесь текст нужно достать через метод get_attribute('textContent')
И еще, мне кажется, что лучше парсить каждый блок отдельно. Тогда все будет на месте и никакой путанницы.
Вообще, все адреса лежат в JS скрипте

self.shops = self.driver.execute_script('return shopsObj')
for shop in self.shops:
    print(shop['address'], shop['availability_hint'])

oldСначала найти все строки, которые содержат информацию о магазине:
self.shops = self.driver.find_elements(By.XPATH, '//div[@class="b-shops-map__shop _other"]')

В цикле к каждому обратиться и достать нужную инфу:
self.shops = self.driver.find_elements(By.XPATH, '//div[@class="b-shops-map__shop _other"]')

for shop in self.shops:
    print(shop.find_element_by_class_name('b-shops-map__address-text').text)
    print(shop.find_element_by_class_name('b-shops-map__availability-col-wrapper').find_element_by_class_name('b-tooltip-new__text.s-tooltip-text').get_attribute('textContent').strip())
    print()
Поле .text возвращает только видимый текст. Здесь же он появляется после наведение курсора. Здесь текст нужно достать через метод get_attribute('textContent')
self.driver.get(self.url + f'/availability')
self.shops = self.driver.find_elements(By.XPATH, '//span[@class="b-tooltip-new__text s-tooltip-text"]')
print([x.get_attribute('textContent') for x in self.shops])