无法点击通过AJAX渲染的元素

时间:2019-10-07 14:52:40

标签: javascript casperjs

标题内容是通过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,但是当我在CTR+U窗口中签入时,html中没有这样的东西。上面只有JS。 .switch_language存在,但只能在F12/ELements选项卡中找到它。也尝试过wait(SECONDS)waitForSelector。每次Cannot dispatch click event on non-existing element

1 个答案:

答案 0 :(得分:1)

CTRL + U是“查看页面源”,它显示发送到浏览器的服务器端HTML。它不包含实时DOM的结构,也不包含在页面提供给您之后发生的任何更改-意味着由JavaScript或异步事件(如Ajax)更改的任何内容。

对于实时DOM,您应该使用Web检查器(或等效工具...不同的浏览器将其称为略有不同的东西-Chrome中的DevTools)。

由于使用的是JQuery,因此可以将事件附加到尚不存在的元素(带有live())。