Невозможно нажать на элемент, отображаемый с помощью AJAX - PullRequest
0 голосов
/ 07 октября 2019

Содержимое заголовка отображается через Ajax:

<script>
            $(document).ready(function() {
                var loadingTimer = setInterval(animate_loading, 66);
                $.post('home/load_header', {}, function(data) {
                    clearInterval(loadingTimer);            
                    $("#header_content").html(data);              
                });
            });
        </script>

Я пытаюсь достичь .switch_language, но в html такого нет, когда я проверяю в окне CTR+U. Существует только JS выше. .switch_language существует, но найти его можно только на вкладке F12/ELements. Пробовал также с wait(SECONDS), waitForSelector. Каждый раз Cannot dispatch click event on non-existing element.

1 Ответ

1 голос
/ 07 октября 2019

CTRL + U - Просмотр исходной страницы, которая показывает серверный HTML-код, отправленный в ваш браузер. Он не содержит структуру действующего DOM и ничего, что изменило ПОСЛЕ страницы, предоставленной вам, что означает что-либо, что изменяется с помощью JavaScript или асинхронных событий, таких как Ajax.

Для живого DOM вы должны использовать Web Inspector (или эквивалентный ... разные браузеры называют это немного по-разному - это DevTools в Chrome).

Поскольку вы используете JQuery,Вы можете прикрепить события к элементам, которые еще не существуют, с помощью live /).

...