我使用soda selenium進行集成測試。 下面的代碼工作:storeEval編號正常,但文本 - 失敗
我保存元素的高度,並在測試下一個使用它:
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文本爲空,但當我檢查它在瀏覽器控制檯它打印:
window.jQuery('h2.logo').text()
"jQuery"
那麼如何存儲h2文本,並在測試中使用它呢?
有什麼特別的理由不使用['storeText()'](http://release.seleniumhq.org/selenium-core/1.0.1/reference.html#storeText )而不是'storeEval()'?無論如何,這應該工作。你可以嘗試'var text = browser.getText(...);'而不是? –