2010-10-05 6 views
2

Je dispose d'un sélecteur avec un seul composant et 5 valeurs dans le composant.Sélecteur de poignée dans UIAutomation

je pouvais obtenir le nombre de roues, et les valeurs dans le composant, comme ci-dessous

var picker = window.pickers(); 

UIALogger.logMessage("picker array count: " + picker.length); 

var pickerWheels = picker[0].wheels(); 
var pickerWheelsValues =pickerWheels[0].values(); 

Lorsque je me connecte la déclaration, comme "pickerWheels [0] .values ​​() [1]", il ne affiche le premier élément.

La question est, comment taper dessus?

pickerWheels [0] .values ​​() [1] .tap(); // NE FONCTIONNE PAS

Quelqu'un peut-il fournir une entrée, comment taper sur les éléments de la roue de ramassage?

J'ai également essayé d'implémenter le UIPickerViewAccessibilityDelegate et de l'ignorer // Définir l'accessiblité pour chaque composant.

- (NSString *)pickerView:(UIPickerView *)thePickerView accessibilityLabelForComponent:(NSInteger)component{ 
    thePickerView.isAccessibleElement = YES; 
    thePickerView.accessibilityLabel= @"label"; 
    return @"label"; 
} 

Répondre

1

Il y a un poste sur O'Reilly qui montre une façon d'interagir avec les ramasseurs (faites défiler jusqu'à la réponse affichée par « zpthacker »).

Fondamentalement, cela implique le calcul de l'endroit où appuyer sur le sélecteur pour le faire aller et venir.

L'échantillon doit être peaufiné un peu afin de travailler en ce qui concerne la création d'un point, par exemple à ce qui suit

var tapLoc = new Object(); 
tapLoc.x = origin.x+tapWidth; 
tapLoc.y = tapHeight+origin.y; 
target.tap(tapLoc); 
+0

Salut, Un peu plus tôt J'ai essayé cela mais, échoue avec le message d'erreur ci-dessous. Exception déclenchée lors de l'exécution du script: ReferenceError: Impossible de trouver la variable: Point var tapLocation = new Point (origin.x + tapWidth, tapHeight + origin.y); <----- Suis-je en train de manquer quelque chose? pls aider – Senthil

+0

Oui, je l'ai remarqué aussi. J'ai modifié ma réponse, donc le point devrait être créé correctement (mais comme un objet) –

+0

Merci beaucoup Claus, ça marche. !! – Senthil

0

Voulez-vous tester robinet sur la roue ou tout simplement choisir une valeur particulière à ce sujet?

Pour la sélection de valeur particulière que vous savez (sur la première roue du sélecteur) vous pouvez utiliser: la réponse de

window.pickers()[0].wheels()[0].setValue("another value"); 
+0

jki, j'ai besoin de cette fonctionnalité! mais cela ne fonctionne pas le code! Pourquoi? L'avez-vous fonctionné bien ou c'est juste une hypothèse? – Stas

+0

Fonctionne bien pour moi (mais pas sur DatePickers qui sont un type spécial de sélecteurs). – jki

+0

sur le sélecteur de données il y a trois roues pour le mois, la date et l'année. Vous devez utiliser des roues() [0], des roues() [1], des roues() [2] pour sélectionner des valeurs séparément. –

1

jki est presque correcte, il devrait être:

window.pickers()[0].wheels()[0].selectValue("another value");