首页 > 解决方案 > Testcafe Hammerhead 在 innerHTML 上具有明显的行为,代码损坏

问题描述

尝试在使用 dojo js 库的页面上使用 Testcafe,它的分页组件破坏了 HTML(dojo 参考),浏览器(Chrome、Firefox 和 Safari)处理它并根据需要进行修复,但 testcafe-hammerhead 对待它不同并且破坏了关联组件。

这可以通过使用来重现:

<html>
    <body>
        <script>

            document.body.innerHTML = '<html>'+
                '<head></head>'+
                '<body>'+
                    '<div dojoattachpoint="paginatorBar">'+
                        '<table style="width:100%">'+
                            '<tbody>'+
                                '<tr>'+
                                    '<td>Jill</td>'+
                                    '<td>Smith</td>'+
                                    '<td>'+
                                        '<div>50</div></div>'+<!--broken code--!>
                                    '</td>'+
                                '</tr>'+
                                '<tr>'+
                                    '<td>Eve</td>'+
                                    '<td>Jackson</td>'+
                                    '<td>94</td>'+
                                '</tr>'+
                            '</tbody>'+
                        '</table>'+
                    '</div>'+
                '</body>'+
            '</html>';

        </script>
    </body>
</html>

浏览器生成:

<html>
    <head></head>
    <body>
        <div dojoattachpoint="paginatorBar">
            <table style="width:100%">
                <tbody>
                    <tr>
                        <td>Jill</td>
                        <td>Smith</td>
                        <td>
                            <div>50</div> <!--fixed code--!>
                        </td>
                    </tr>
                    <tr>
                        <td>Eve</td>
                        <td>Jackson</td>
                        <td>94</td>
                    </tr>
                </tbody>
            </table>
        </div>
    </body>
</html>

和锤头:

<html data-hammerhead-hovered="">
    <head>
        <meta class="charset-hammerhead-shadow-ui" charset="iso-8859-1">
            <script type="text/javascript" class="script-hammerhead-shadow-ui" charset="UTF-8" src="http://localhost:1401/hammerhead.js"></script>
            <script type="text/javascript" class="script-hammerhead-shadow-ui" charset="UTF-8" src="http://localhost:1401/task.js"></script>
        </head>
        <body>
            <div dojoattachpoint="paginatorBar">
                <table style="width:100%">
                    <tbody>
                        <tr>
                            <td>Jill</td>
                            <td>Smith</td>
                            <td>
                                <div>50</div>
                            </td>
                        </tr>
                    </tbody>
                </table>           <!--ends table--!>
            </div>EveJackson94
            <div id="root-hammerhead-shadow-ui" contenteditable="false" class="root-hammerhead-shadow-ui"></div>
        </body>
    </html>

有谁知道是什么导致了这个问题以及如何避免它?

我正在使用:

提前致谢。

标签: testingautomated-testsinnerhtmle2e-testingtestcafe

解决方案


TestCafe 不能处理错误的标记。也有类似的错误标记问题


推荐阅读