統合テストにはソーダセレンを使用します。次のコードが機能します。
要素の高さを保存し、次のテストで使用します。
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テキストを保存してテストでさらに使用するにはどうすればよいでしょうか?