testing - 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>
有谁知道是什么导致了这个问题以及如何避免它?
我正在使用:
- Chrome 版本 81.0.4044.138(64 位)
- 节点 v12.16.3
- 测试咖啡厅 1.8.4
- macOS 莫哈韦 10.14.4
提前致谢。
解决方案
TestCafe 不能处理错误的标记。也有类似的错误标记问题。
推荐阅读
- c++ - 对于 C++ 中的泛型类型,默认构造函数是否表示零
- java - ChoiceBox 在被点击 3 次后才会填充
- angular - 如何在 Angular 2 中将事件从深层嵌套的子级传递给父级?
- networking - 地址聚合连续块,为什么有些地址无法使用?
- primefaces - 如何在 selectOneMenu 中使用 LazyDataModel 列表
- r - 提取r中字符串中存在的天数
- python - 在 R 和 Python 中计算标准差
- azure - 如何取消 IoT Hub 中正在运行的计划作业?
- html - 如何在 Ionic 4 中每 10 秒后移动 Ion-Slides?
- vba - Vba:从给定行中获取与给定字符串匹配的所有单元格