Browser.execute为所有返回Undefined

时间:2018-09-24 13:35:36

标签: javascript selenium nightwatch.js

我正在使用Nightwatch中的自定义javascript从网页中获取一些值。

browser.execute(function () {
    priceValues = {
        total: document.querySelectorAll('someLocator').innerText,
        individualPrice: document.querySelectorAll('someLocator').innerText,
        discount: document.querySelectorAll('someLocator').innerText,
    };
    return priceValues;
}, [], function (result) {
    totalPrice = result.value.total;
    individual = result.value.individualPrice;
    discountPrice = result.value.discount;
});

我面临的问题是,对于某些测试,我没有折扣,因此我在此处不确定,但是由于此,另外两个总计和存在其值的个人价格也不确定。如果有人指出我在哪里做错了,那将是很好的。

1 个答案:

答案 0 :(得分:0)

我能够使用下面的代码块做到这一点:

browser.execute(function () {
    priceValues = {
        total: document.querySelectorAll('someLocator').innerText,
        individualPrice: document.querySelectorAll('someLocator').innerText,
    };
    var discount = document.querySelectorAll('someLocator'),

    if (discount && discount.innerText) {
        priceValues.discount = discount.innerText;
    }
    return priceValues;
}, [], function (result) {
    totalPrice = result.value.total;
    individual = result.value.individualPrice;
    discountPrice = result.value.discount;
});