javascript - 如何为 <noscript> 标签编写自动化测试?

标签 javascript html testing integration-testing noscript

我正在构建一个依赖 <noscript> 的网络应用程序如果 Javascript 被禁用,则标记。我想验证该标记是否显示,但我不确定如何使用我拥有的任何框架或任何一般框架来执行此操作。

当 Javascript 被禁用时,有问题的应用程序默认显示以下内容:

 <div>
  <noscript>
    <h1>Javascript Disabled</h1>
    Use this page to show content when Javascript has been disabled
  </noscript>
 </div>

应用程序在加载脚本时将上面的内容替换为以下内容:

 <div>
   Hello World
 </div>

现在我正在使用 NightmareJS 和带有 Jasmine 的 Testem 进行测试。我不一定要使用它们,但如果可能的话我还是想使用 Javascript。

我在这里完全被难住了,甚至不知道我该从哪里开始——所有的 StackOverflow 问题似乎都是关于如何使用 <noscript> 的。 ,而不是在端到端或单元测试中(以自动方式)对其进行验证。

最佳答案

NightmareJS使用 Electron在引擎盖下运行测试 doesn't seem to support passing a flag这会禁用 Javascript,但我必须警告您我并没有深入研究。

... I'm using NightmareJS and Testem with jasmine. I don't have to be using those, but I'd like to still use javascript if possible.

另一个解决方案是使用 NightwatchJS而不是 NightmareJS,它是一个使用 ChromeDriver 的测试框架通过将首选项传递给 Chromium 来驱动允许禁用 JS 的测试。

我写了一个sample project作为一个非常基本的示例,说明如何在禁用 JS 的情况下运行 NightwatchJS 测试。

项目使用如下配置禁用JS:

守夜人.json

{
  "test_settings" : {
    "default" : {
      "desiredCapabilities": {
        "browserName": "chrome",
        "chromeOptions" : {
          "prefs" : {
            "profile.managed_default_content_settings.javascript": 2
          }
        }
      }
    }
  }
}

在上面的配置中,这是传递给 Chromium 的这一行,它暗示我们希望在 NighwatchJS 运行测试时禁用 JS:

"profile.managed_default_content_settings.javascript": 2

话虽如此,我建议您更深入地研究 Nightmare 的文档/问题,以检查您是否可以通过 NightmareJS 传递上述首选项,而不是为了这个小怪癖在 NightwatchJS 中重写所有测试。

关于javascript - 如何为 <noscript> 标签编写自动化测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52806485/

相关文章:

python - 对不重复的字符进行排序,然后对重复的字符进行排序?

javascript - stopPropagation 中断事件处理程序

javascript - 如何知道网站是否使用 cookie?

php - 如何创建搜索表单,其中用户可以搜索三列。使用 PHP AND SQL AND HTML

jquery - 响应式网站不能在移动设备上垂直滚动

javascript - 为什么 "new Image()"会立即触发网络请求,而 "createElement('脚本')”却不会?

javascript - FabricJS:垂直对齐文本中心

javascript - PHP 文件未通过 AJAX 调用

android - 如何杀死Cocos2d-x测试应用

c# - Selenium:FindsBy 与集合