Скорее всего, на странице реализована отложенная загрузка - любая дополнительная информация - новые элементы, запрашиваемые через ajax, только когда пользователь прокручивает до конца страницы.
И это то, что происходит в вашем скрипте - вы выполнили js для прокрутки до конца. Если вы в этот момент выполните findElements
без сна, у страницы не будет времени отправить запрос ajax, дождаться разбора ответа и обновить DOM. Таким образом вы получите только имеющиеся в данный момент элементы.
С sleep
вы даете ему такую возможность.
Имейте в виду, что жестко закодированное значение 1 может иногда работать, а иногда - нет; если для генерации ответа бэкэнду требуется больше времени или сеть работает медленно - новые данные могут быть не получены вовремя.
Альтернативное решение - опросить DOM на количество целевых элементов каждые X миллисекунд и продолжить, как только это число увеличится. Это, однако, должно соответствовать случаю, когда больше нет результатов (больше нет артикулы Russian? Артикули Bulgarian? :) и вырваться из цикла опроса (это можно сделать, если на странице есть счетчик итоговых результатов или подобное) .