2017-05-03 13 views
0

React-Native 앱에 대해 Calabash를 시작하려고합니다.React-Native를 사용하여 Calabash에서 CONTAINS 쿼리를 수행하는 방법

나는 성공적으로 쿼리를 수행 할 수 있습니다

query("RCTView marked:' Coaching'") 

그러나이 불행한 간격으로 여러 견해가있다. 대신 포함 된 쿼리를 수행하고 싶습니다.

query("RCTView {label CONTAINS 'Coaching'}") 

을하지만이 작동하지 않습니다

나는 예를 들어, 성공없이 몇 가지 변종을 시도했습니다. 몇 가지 당신이 시도 할 수

[ 
    [0] { 
         "alpha" => 1, 
        "enabled" => true, 
          "id" => nil, 
        "visible" => 1, 
         "frame" => { 
       "y" => 0, 
       "x" => 0, 
      "width" => 75, 
      "height" => 50 
     }, 
     "accessibilityElement" => false, 
         "class" => "RCTView", 
         "label" => " Coaching", 
       "description" => "<RCTView: 0x7ff38205a2e0; reactTag: 474; frame = (0 0; 75 50); layer = <CALayer: 0x600000228080>>", 
         "value" => nil, 
         "rect" => { 
        "y" => 617, 
      "center_x" => 262.5, 
      "center_y" => 642, 
        "x" => 225, 
       "width" => 75, 
       "height" => 50 
     } 
    } 
] 

답변

0

:

뷰가 첫 번째 쿼리의 결과에서 모습입니다

먼저 간격을 제거 dev에 물어 될 것입니다 :) . 경우 모두 "코칭"와 "코칭"에서

어떤 이유로 필요, 이것을 사용 :

여기
query("RCTView")[0]['label'].include? 'Coaching' 

당신이 해시를 통과하고 레이블이 당신이 포함 원하는 포함되어있는 경우 확인되어, 이 경우에는 "코칭"입니다.

클래스 이름 대신 '*'를 사용하십시오 :

query("* { label CONTAINS 'Coaching' }") 

을 그 어떤 레이블에서 작동하지 않는 경우,이 사항을 고려하십시오

def contains_label(label) 
    hash_to_use = query('RCTView') 
    hash_to_use.each do |key| 
    if key['label'].include? label.to_s 
     hash_to_use[hash_to_use.index(key)] 
    end 
    end 
end 

는 희망이 도움이!