из рабочего browser.span(:class,'ui-slider-handle ui-state-default ui-corner-all').focus
и browser.send_keys(:arrow_right)
но сразу бы попасть на 15дней или 50%
Я так понимаю, у нас есть дата слайдер, типа ползунка и есессно мы не можем драг и дропнуть не имея два элемента(отку взять и куда кинуть, ибо все внутри одного элемента).
Мое предложение, сделать .click_and_hold, после чего делать в цикле .move_by и в каждом степе делать мув на несколько десятков пикселей в нужную сторону, пока ты не будет иметь нужный тебе показатель даты в плейсхолдере.
Тот же принцип как и в солюшене автора.
Было бы не плохо конечно видеть сам слайдер, ибо если иметь вот такой вот слайдер: jQRangeSlider - Documentation - Options - он имеет встроенные функции с помощью которого можно используя javascript четко ставить нужные рейнджи и вообще дату.
такой он и есть. навигация по нему с помощью кнопок вполне работает. Но, если задача стоит установить в него значение из конфига, как быть? например .span(%blablabla%).set (:style, ‘left: 50%’)
Трудно сказать, не пощупав этот слайдер, ибо я же говорю, возможно у этого слайдера есть стандартный набор функций, а потом через джаваскрипт сделать вызов этой функции и в качестве параметра передавать вашу переменную. Это кастомный слайдер, или может заюзали уже готовый слайдер, который можно глянуть где-то в инете?
И кстати да, ваш солюшен можно тоже спокойно заюзать, почему бы не сделать, что-то типа вычисления потипу:
2 раза arrow_right = 1 день
def set_days(days)
browser.span(:class,'ui-slider-handle ui-state-default ui-corner-all').focus
days*2.times do
browser.send_keys(:arrow_right)
end
end
Да, точно, есть .drag_and_drop_by, но опять таки, тогда нужно будет точно также высчитывать на сколько пикселей нужно отодвигать ползунок, что бы попасть на нужную дату, а особенно если нужно указать точное кол-во дней.
У меня была подобная ситуация. И я это делаю динамически.
Сначала я узнаю ширину элемента (общую), например ширина всей дорожки, где ползунок может быть 200 пикселей.
Потом я определяю на сколько пикселей он уже отодвинут. Для этого нужно узнать ширину “активного” элемента, либо вычленить соответствующий параметр из стиля элемента.
Далее, в случае если тебе надо поместить ползунок четко посередине, берешь 50% от 200 пикселей, отнимаешь от полученного результата текущее положение ползунка - и получаешь результат, насколько нужно перетащить ползунок.
Все!