2017-05-03 2 views
0

React-NativeアプリケーションのためにCalabashを立ち上げようとしています。React-Nativeを使ってCalabashでCONTAINSクエリを実行する方法

私は正常にこのクエリを行うことができます。

query("RCTView marked:' Coaching'") 

しかし、この不幸な間隔で複数のビューがあります。代わりにcontainsクエリを実行したいと思います。

私は、たとえば、成功せず、いくつかのバリエーションを試してみました:

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 

はそれが役に立てば幸い!

関連する問題