当前位置: 首页 > 知识库问答 >
问题:

使用nightwatchjs查找并检查脚本(网页内)是否正确

芮承运
2023-03-14

我使用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方法来定位脚本的这一部分,但没有成功。

任何帮助都将不胜感激。谢谢

共有1个答案

公良理
2023-03-14

与“断言什么,而不是如何”的范式一致,这里的“什么”似乎确保脚本被注入到页面中。您可以使用如下选择器:script[src^=”https://uk-script.dotmetrics.net/“],与Nightwatch的元素功能结合使用。您可以添加更多选择器来断言脚本具有类型异步等预期属性。

通过这种方式,您可以跳过实现细节(注入脚本的存在)并专注于我认为您真正关心的内容(具有正确URL的脚本被注入页面)。

 类似资料:
  • 这是我遇到的一个普遍问题。我想知道是否有人知道任何合适的设计模式或技术。 上面的类从队列中获取外部对象并构造MyBuilderClass对象。 如果所有字段都设置为非null非空值,则成功构建MyBuilderClass对象。 将有许多MyBuilderClass对象无法构建,因为ExternalObject中缺少数据。 我的问题是,检测对象是否已正确构建的最佳方法是什么? 我可以检查set方法中

  • 问题内容: 通过使用python,如何检查网站是否正常?从我阅读的内容中,我需要检查“ HTTP HEAD”并看到状态码“ 200 OK”,但是该怎么做呢? 干杯 有关 如何使用Python发送HEAD HTTP请求? 问题答案: 您可以尝试使用要做到这一点从 urllib的 编辑:对于更现代的python,即使用:

  • 问题内容: AngularJs中的内联方法是否可以检查某物是否为数组? 我本以为这样可以工作: 我已经证实它实际上是一个数组。有什么我想念的东西吗? 问题答案: 您可以戴上瞄准镜… 小提琴

  • 问题内容: 查找进程aa.sh是否正在运行的linux命令是什么。ps命令似乎不起作用,并且不显示Shell脚本名称。 请指教。 问题答案: 检查一下

  • 问题内容: 我通过单击具有特定类的div来调用下面的函数。 有没有一种方法可以在启动功能时检查用户是否正在使用Internet Explorer并在用户使用其他浏览器时中止/取消它,以便仅为IE用户运行?这里的用户都将使用IE8或更高版本,因此我不需要介绍IE7和更低版本。 如果我能告诉他们使用的是哪种浏览器,那很好,但是不是必需的。 示例功能: 问题答案: 使用以下JavaScript方法: 您

  • 问题内容: 我有以下情况: 这些检查都没有成功。只有路径不同:u1的路径为“ /”,而u2的路径为“”。这些URL是否指向相同的资源,是否可以在不打开连接的情况下检查这种情况?我是否误解了有关URL的一些基本知识? 编辑 我应该指出,需要非黑客检查。说空路径== /是否合理?我希望没有这种代码 问题答案: 从2007 JavaOne中: 第二个难题的标题是“集的更多乐趣”,它使用户可以创建由多个U