1

統合テストにはソーダセレンを使用します。次のコードが機能します。

要素の高さを保存し、次のテストで使用します。

var soda = require('soda')
    , assert = require('assert');
var browser = soda.createClient({
    host: 'localhost'
    , port: 4444
    , url: 'http://jquery.com'
    , browser: 'firefox'
});
browser.session(function(err){
    browser.open('/', function(err, body, res){
        browser.storeEval("window.jQuery('.logo').height();", "height", function(err, body, res){
            browser.getEval('${height}',function(err,val){
                if(err !== null) throw err
                console.log(val) //------ it outputs 66 in console, so it works well
                browser.testComplete(function(){ });
            });
        });
    });
})

要素のテキストを取得しようとするwindow.jQuery('h2.logo').text();と失敗します:

var soda = require('soda')
    , assert = require('assert');
var browser = soda.createClient({
    host: 'localhost'
    , port: 4444
    , url: 'http://jquery.com'
    , browser: 'firefox'
});
browser.session(function(err){
    browser.open('/', function(err, body, res){
        browser.storeEval("window.jQuery('h2.logo').text();", "text", function(err, body, res){
            browser.getEval('${text}',function(err,val){
                if(err !== null) throw err
                console.log(val) // ------------------------- null
                browser.testComplete(function(){ });
            });
        });
    });
})

nullコンソールに出力されます。したがって、h2テキストはnullですが、ブラウザコンソールで確認すると次のように表示されます:

window.jQuery('h2.logo').text()
"jQuery"

では、h2テキストを保存してテストでさらに使用するにはどうすればよいでしょうか?

4

1 に答える 1

1

ありがとう、スラネック。getText は私にとってはうまくいきます:

var soda = require('soda')
    , assert = require('assert');
var browser = soda.createClient({
    host: 'localhost'
    , port: 4444
    , url: 'http://jquery.com'
    , browser: 'firefox'
});
browser.session(function(err){
    browser.open('/', function(err, body, res){
        browser.getText('css=h2.logo',function(err,val){
            if(err !== null) throw err
            console.log(val) //------------------- jQuery
            browser.testComplete(function(){ });
        });
    });
})
于 2013-07-21T13:38:08.057 に答える