With Protractor I\'m trying to automate a part of a UI, in which with plus-minus buttons a min-max-range (i.e. 100\'000-200\'000) is selected.
There is an inputAmo
I don't have the right to comment so I put it as an answer, did you put all your code inside then() - after the promise returns the value ?
The currentMax is a variable initialized once, does the loop ends once it enters it !?
You mentioned currentMax and in code there is max are they the same ? what does the btnPlus click increments, the max ?
Finally I would suggest something similar to:
$('.max').getText().then(function(value){
var currentMax = parseInt(value.replace(/\'/,''));
var btnPlus = $('.slider-buttons .slider-button-plus');
for (i = currentMax; i <= inputAmount; i++) {
btnPlus.click();
browser.wait(300);
};
});
Since javascript is asynchronous, you need to resolve the promise before accessing the return value from the promise. In your case, you need to implement recursion to make your method to click the slider until required value is set. Have a look at below example.
var selectAmountRange = function(inputAmount) {
$('.max').getText().then(function(currentMax){
var btnPlus = $('.slider-buttons .slider-button-plus');
if(currentMax < selectAmountRange){
btnPlus.click();
browser.sleep(3000);
selectAmountRange(inputAmount); //call the same method untill required inputAmount is selcted.
}
};
};