(Swift, EarlGrey) переместить ползунок в середину

Я пишу несколько тестов, и мне нужно перейти к середине слайдера. Я хотел бы получить минимальное и максимальное значение ползунка, как на картинке ниже:

Эти значения могут меняться, поэтому каждый раз, когда мне нужно получить их в моем коде. Позже я просто хочу получить среднее из этих двух значений и переместить ползунок в середину, используя метод

performAction:grey_moveSliderToValue(valueToMove)

Как я могу получить minumumValue и MaximumValue в моем коде? Это лучший подход или лучше переместить точку воспроизведения к середине слайдера?

1 ответ

Вы можете использовать GREYActionBlock EarlGrey, чтобы создать новое действие, которое скользит до половины

// Create a new action that slides to half.
GREYActionBlock *slideToHalfAction = [GREYActionBlock actionWithName:@"slideToHalf"
                                                         constraints:grey_kindOfClass([UISlider class])
                                                        performBlock:^BOOL(id element, NSError *__strong *errorOrNil) {
  UISlider *slider = element;
  float minValue = slider.minimumValue;
  float maxValue = slider.maximumValue;
  float halfValue = (minValue + maxValue) / 2;
  return [grey_moveSliderToValue(halfValue) perform:element error:errorOrNil];
}];

// Use the new action on the slider.
[[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"slider4")] performAction:slideToHalfAction];
Другие вопросы по тегам