2013-07-21 58 views
1

我使用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文本,並在測試中使用它呢?

+1

有什麼特別的理由不使用['storeText()'](http://release.seleniumhq.org/selenium-core/1.0.1/reference.html#storeText )而不是'storeEval()'?無論如何,這應該工作。你可以嘗試'var text = browser.getText(...);'而不是? –

回答

1

Thanx,Slanec。的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(){ }); 
     }); 
    }); 
}) 
+2

我很高興你做到了。不知道爲什麼你以前的解決方案不起作用,但。我感到有義務告訴你Selenium RC兩年前已被廢棄,目前推薦的Selenium技術是[Selenium WebDriver](http://code.google.com/p/selenium/)。 [WebDriver也有JavaScript綁定。](http://code.google.com/p/selenium/wiki/WebDriverJs)因此,如果您多年來一直在使用蘇打水,沒有問題,請使用它。如果您剛剛開始並希望使用實際支持的更新,更好的內容,請嘗試使用WebDriver。 –

相關問題