2016-11-30 6 views
0

Ich schreibe einige Tests und ich muss in die Mitte eines Schiebereglers gehen. Ich möchte den minimalen Wert und den maximalen Wert des Schiebereglers erhalten, wie auf einem Bild unten: enter image description here(Swift, EarlGrey) Verschieben Sie den Schieberegler in die Mitte

Diese Werte können sich also jedes Mal ändern, wenn ich sie in meinen Code aufnehmen muss. Später möchte ich Mittelwert dieser beiden Werte nur erhalten und den Schieber in die Mitte mit einer Methode

performAction:grey_moveSliderToValue(valueToMove) 

bewegen Wie kann ich minumumValue und Maximum in meinem Code bekommen? Ist dies der beste Ansatz oder ist es besser, den Abspielkopf in die Mitte des Schiebereglers zu verschieben?

Antwort

2

können Sie EarlGrey die GREYActionBlock verwenden, um eine neue Aktion zu erstellen, die

// 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]; 
+0

So stellen Sie sicher, dass die halfValue fällt nicht in gebrochene Pixel sonst Earlgrey auf die Hälfte schiebt den Regler nach halfValue einzustellen scheitern, weil es nicht ist Benutzer erreichbar. – khandpur

Verwandte Themen