Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Selenium storeEval编号正常,但文本-失败_Selenium - Fatal编程技术网

Selenium storeEval编号正常,但文本-失败

Selenium storeEval编号正常,但文本-失败,selenium,Selenium,我用于集成测试。 以下代码起作用: 我保存了元素的高度,然后在测试中使用它: var soda = require('soda') , assert = require('assert'); var browser = soda.createClient({ host: 'localhost' , port: 4444 , url: 'http://jquery.com' , browser: 'firefox' }); browser.session(f

我用于集成测试。 以下代码起作用:

我保存了元素的高度,然后在测试中使用它:

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文本并在测试中进一步使用它呢。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(){ });
        });
    });
})

桑克斯,斯莱纳克。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(){ });
        });
    });
})

不使用而不是
storeEval()
的任何特定原因?无论如何,这应该行得通。你能试试
var text=browser.getText(…)替代?不使用替代
storeEval()
的任何特定原因?无论如何,这应该行得通。你能试试
var text=browser.getText(…)相反?我很高兴你成功了。不过,我不知道为什么您以前的解决方案不起作用。我觉得有义务告诉你,Selenium RC在两年前就被正式弃用了,目前推荐的Selenium技术是。所以,如果你已经用苏打水很多年了,没问题,就用它吧。如果您刚刚开始使用一些实际支持的、更新的和更好的东西,请尝试WebDriver。我很高兴您成功了。不过,我不知道为什么您以前的解决方案不起作用。我觉得有义务告诉你,Selenium RC在两年前就被正式弃用了,目前推荐的Selenium技术是。所以,如果你已经用苏打水很多年了,没问题,就用它吧。如果您刚刚开始使用一些实际支持的、更新的和更好的东西,请尝试WebDriver。