我使用nightwatchjs作为测试工具,需要测试注入的脚本是否正确显示在页面上,以及脚本是否正确填充。
因此,下面的脚本html将被测试(以确保它被正确显示):
<script type="text/javascript">
(function() {
window.dm = window.dm ||{ AjaxData:[]};
window.dm.AjaxEvent = function(et, d, ssid, ad) {
dm.AjaxData.push({ et:et, d:d, ssid:ssid, ad:ad});
window.DotMetricsObj && DotMetricsObj.onAjaxDataUpdate();
};
var d = document, h = d.getElementsByTagName('head')[0], s = d.createElement('script');
s.type = 'text/javascript';
s.async = true;
s.src='https://uk-script.dotmetrics.net/door.js?id=11373';
h.appendChild(s);
} ());
</script>
所以首先,我想测试这个脚本是否出现在页面上,但是以一种尽可能不脆弱的方式。我可以测试 /html/head/script[13]/text(),但这真的很脆弱,远非理想。
脚本中有没有什么我可以参考的东西,这样测试就不会那么脆弱了?
其次,我想确保脚本的细节是正确的。这可以是一项检查是否存在故障的测试https://uk-script.dotmetrics.net例如,脚本的一部分。
然而,我尝试使用我常用的css和xpath方法来定位脚本的这一部分,但没有成功。
任何帮助都将不胜感激。谢谢
与“断言什么,而不是如何”的范式一致,这里的“什么”似乎确保脚本被注入到页面中。您可以使用如下选择器:script[src^=”https://uk-script.dotmetrics.net/“]
,与Nightwatch的元素
功能结合使用。您可以添加更多选择器来断言脚本具有类型
和异步
等预期属性。
通过这种方式,您可以跳过实现细节(注入脚本的存在)并专注于我认为您真正关心的内容(具有正确URL的脚本被注入页面)。
这是我遇到的一个普遍问题。我想知道是否有人知道任何合适的设计模式或技术。 上面的类从队列中获取外部对象并构造MyBuilderClass对象。 如果所有字段都设置为非null非空值,则成功构建MyBuilderClass对象。 将有许多MyBuilderClass对象无法构建,因为ExternalObject中缺少数据。 我的问题是,检测对象是否已正确构建的最佳方法是什么? 我可以检查set方法中
问题内容: AngularJs中的内联方法是否可以检查某物是否为数组? 我本以为这样可以工作: 我已经证实它实际上是一个数组。有什么我想念的东西吗? 问题答案: 您可以戴上瞄准镜… 小提琴
问题内容: 通过使用python,如何检查网站是否正常?从我阅读的内容中,我需要检查“ HTTP HEAD”并看到状态码“ 200 OK”,但是该怎么做呢? 干杯 有关 如何使用Python发送HEAD HTTP请求? 问题答案: 您可以尝试使用要做到这一点从 urllib的 编辑:对于更现代的python,即使用:
问题内容: 查找进程aa.sh是否正在运行的linux命令是什么。ps命令似乎不起作用,并且不显示Shell脚本名称。 请指教。 问题答案: 检查一下
问题内容: 我通过单击具有特定类的div来调用下面的函数。 有没有一种方法可以在启动功能时检查用户是否正在使用Internet Explorer并在用户使用其他浏览器时中止/取消它,以便仅为IE用户运行?这里的用户都将使用IE8或更高版本,因此我不需要介绍IE7和更低版本。 如果我能告诉他们使用的是哪种浏览器,那很好,但是不是必需的。 示例功能: 问题答案: 使用以下JavaScript方法: 您
问题内容: 我有以下情况: 这些检查都没有成功。只有路径不同:u1的路径为“ /”,而u2的路径为“”。这些URL是否指向相同的资源,是否可以在不打开连接的情况下检查这种情况?我是否误解了有关URL的一些基本知识? 编辑 我应该指出,需要非黑客检查。说空路径== /是否合理?我希望没有这种代码 问题答案: 从2007 JavaOne中: 第二个难题的标题是“集的更多乐趣”,它使用户可以创建由多个U