【问题标题】:How to use zombie to test <input type="hidden">如何使用zombie测试<input type="hidden">
【发布时间】:2015-04-26 03:13:05
【问题描述】:

这是我的看法,我要测试一下。

<h1>Request Group Rate</h1>
<form>
    <input type="hidden" name="referrer">
    Name: <input type="text" id="fieldName" name="name"><br>
    Group size: <input type="text" name="groupSize"><br>
    Email: <input type="email" name="email"><br>
    <input type="submit" value="Submit">
</form>
<script>
 $(document).ready(function() {
     /* document.referrer: Returns the URI of the page that links to this page */
     $('input[name="referrer"]').val(document.referrer);
 });
</script>

我的测试是这样写的:

var Browser = require('zombie'),
    assert = require('chai').assert;

var browser;

suite('Cross-Page Tests', function() {
    setup(function() {
         browser = new Browser();
    });


    test('requesting a group rate quote from the hood river tour page ' +
         'should populate the referrer field', function(done) {
             var referrer = 'http://localhost:3000/tours/hood-river';
             browser.visit(referrer, function() {
                 browser.clickLink('.requestGroupRate', function() {
                     browser.assert.input('form input[name="referrer"]', referrer);
                     done();
                 });
             });
         });

然后,我运行测试,我发现测试会阻塞在

browser.assert.input('form input[name="referrer"]', referrer);

(我注释了这一行,测试运行正常)。

我的 package.json:

{
  "name": "meadowlark",
  "version": "1.0.0",
  "description": "A travel website",
  "main": "meadowlark.js",
  "scripts": {
    "test": "grunt"
  },
  "repository": {
    "type": "git",
    "url": "https://github.com/zwb-ict/meadowlark.git"
  },
  "keywords": [
    "node"
  ],
  "author": "zwb.ict@gmail.com",
  "license": "MIT",
  "bugs": {
    "url": "https://github.com/zwb-ict/meadowlark/issues"
  },
  "homepage": "https://github.com/zwb-ict/meadowlark",
  "dependencies": {
    "express": "^4.12.3",
    "express-handlebars": "^2.0.0"
  },
  "devDependencies": {
    "chai": "^2.2.0",
    "grunt": "^0.4.5",
    "grunt-contrib-jshint": "^0.11.2",
    "grunt-exec": "^0.4.6",
    "grunt-istanbul": "^0.5.0",
    "grunt-mocha-test": "^0.12.7",
    "istanbul": "^0.3.13",
    "mocha": "^2.2.4",
    "zombie": "^3.0.0"
  }
}

【问题讨论】:

    标签: javascript html mocha.js zombie-process


    【解决方案1】:

    你可以试试这个:

    assert(browser.resources[0].request.headers._headers[0][1] === referrer);
    

    【讨论】:

    【解决方案2】:

    您是否在断言中正确地将隐藏元素与引用变量进行了比较?

    试试怎么样:

    assert(browser.field('referrer').value === referrer)
    

    【讨论】:

      【解决方案3】:
      1. Zombile V3.1:可能不错,但最新版本不好。

      2. Zombile master 版本有BUG,也已经解决,但是还没有合并到master 版本。所以,我们正在等待。

      这是错误:link

      【讨论】:

        【解决方案4】:

        你可以试试这个

        browser.assert.element("form input[name=referrer]", referrer);
        

        【讨论】:

        • 虽然此代码可能会回答问题,但提供有关此代码为何和/或如何回答问题的额外上下文可提高其长期价值。
        猜你喜欢
        • 1970-01-01
        • 2013-04-24
        • 2020-02-25
        • 2011-03-10
        • 1970-01-01
        • 2016-06-05
        • 2018-01-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多