【问题标题】:getText does not return the value, but returns Object Object when I setValuegetText 不返回值,但是当我 setValue 时返回 Object Object
【发布时间】:2017-08-24 20:14:21
【问题描述】:

所以我手头有以下问题;

我想从registrationNumber 中获取文本。所以我定义了一个 var regNumber = null;

我在 global.js 中定义了 var,因为我想在整个测试中使用不同的 pageObjects 和特定函数之外访问 var。

当它获取文本并且需要在模板搜索中使用 setValue 填充文本时,它返回 Object Object,所以我尝试使用 toString 但相同。 这是我需要使用的函数才能使用 var

module.exports = {

 var regNumber =  browser.globals;

页面对象

        openSearch: function(browser, regNumber ) {
        browser.perform(function () {
        browser.waitForElementVisible('.registrationnumber-search input', 3000)
        browser.setValue('.registrationnumber-search input', regNumber )

            return this;
        })

测试

.continueButton()
browser.getText('xpath', '//*[@id="wizardDetailsTab"]/div[1]/div/div[1]/h4/span[2]', function (result) {
                        regNumber = result.value
                        console.log(result.value)
                    })

 certificateEditor
        .quickMenu("Permit")
        .createNewItem("template")

    permit
        .openSearch(browser, regNumber)

console.log(result.value) 返回我想要的值,但是当我想在 setValue 中使用该值时它不起作用。如果我创建一个函数并在该范围内执行 getText,它会满足我的需要。但是我想知道为什么当我这样尝试时它不起作用。 提前致谢!

【问题讨论】:

    标签: javascript nightwatch.js


    【解决方案1】:

    在您的页面对象中:

     openSearch: function(regNumber ) {
          return this.perform(function (done) {
            this.api.waitForElementVisible('.registrationnumber-search input', 3000)
            .setValue('.registrationnumber-search input', regNumber )
             done(); //prevent timeout issue
            })
    

    将getText()后的代码移入其中。

    var permit=client.page.permit() // replace .permit() as .yourpageobjectjsname() 
    .....
    .continueButton()
    browser.getText('xpath', '//*[@id="wizardDetailsTab"]/div[1]/div/div[1]/h4/span[2]', function (result) {
                            regNumber = result.value
                            console.log(result.value)
                            certificateEditor
                                             .quickMenu("Permit")
                                             .createNewItem("template")
    
                             permit
                                             .openSearch(regNumber)
    })
    

    【讨论】:

    • 感谢您的回复很有帮助!干杯,罗迪
    【解决方案2】:

    从外观上看,当你在寻找一个字符串时,你正在返回一个对象。我认为你只需要指定你想要的对象。

    browser.globals 
    

    应该是这样的 browser.globals.value 或 browser.globals.text

    您的 browser.globals 是被返回的对象。您必须指定希望该对象返回的键/值对。

    【讨论】:

    • 感谢您的快速回复!对象对象消失了,但是它现在返回未定义的值和/或您提到的文本。
    猜你喜欢
    • 2014-09-08
    • 2018-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-13
    • 2015-01-24
    • 1970-01-01
    相关资源
    最近更新 更多