Calabash iOS: cómo obtener valor usando el comando de consulta

Estoy tratando de obtener el valor de cada clase usando el comando de consulta. A continuación se muestra el componente de interfaz de usuario de muestra que obtengo:

[0] { "class" => "UITabBarSwappableImageView", "id" => "imageView-34", "rect" => { "center_x" => 288, "y" => 522, "width" => 48, "x" => 264, "center_y" => 538, "height" => 32 }, "frame" => { "y" => 2, "width" => 48, "x" => 6, "height" => 32 }, "label" => nil, "description" => "" 

En Android, puedo usar esto para enumerar todos los valores de los componentes de clase:

 query("*", :class) 

Sin embargo, parece que no puedo usar el mismo comando en iOS. Entiendo esto como resultado:

 irb(main):135:0> query "*", :class [ [ 0] nil, [ 1] nil, [ 2] nil, [ 3] nil ] 

Sé que con las tags puedo usar: accessibilityLabel para hacer el trabajo, pero no cuando bash obtener valor de class / id / etc.

¿Podría alguien arrojar algo de luz?

Respuesta corta: ‘clase’ no es un selector en instancias de UIView

Respuesta larga:

 # query( < look for some views >, < selector on the views found > ) # look for buttons marked 'big button' and call 'isSelected' selector on them query("button marked:'big button'", :isSelected") # look for labels marked 'title' and call 'text' selector on them query("label marked:'title'", :text) # look for all views and call 'class' selector on them # whoops! 'class' is not a selector on UIView instances query "*", :class 

Dando un paso atrás, creo que sé lo que está tratando de hacer: obtener una lista completa de las vistas que están visibles.

Echa un vistazo a https://github.com/jmoody/briar/blob/master/lib/briar/irbrc.rb

La salida de ejemplo está aquí: https://gist.github.com/jmoody/8031917

En lugar de llamar ‘clase’ en la consulta, repita los resultados obtenidos por la consulta y busque el valor de la clave ‘clase’.

 query('*').map { |result| result['class'] } 
    Intereting Posts