Cómo encontrar elementos relativos de WebView en calabash-ios / calabash-android

¿Cómo puedes encontrar elementos relativos de WebView en Calabash-ios y Calabash-Android? Sé que la syntax es ligeramente diferente entre los dos, pero el problema es el mismo. He aquí un ejemplo:

1) This query is too broad: query("webView css:'div'") # Returns all the div elements visible 2) I can find the div I need with: query("webView css:'div'").find { |x| x["textContent"] =~ /text from my div/ } # Returns the div element I'm looking for 3) and I can find all the button elements query("webView css:'.button') # Returns all the visible elements with .button class 4) and I can find all the buttons that are in a div query("webView css:'div > .button'") # Returns all the visible button elements that are children of a div 

Lo que no puedo hacer es encontrar un button que sea hijo del div que encontré en el ejemplo 2 .

 What I've tried: pseudo-selectors don't work. query("webView css:'div:first'") # Returns an empty array a combination of inheritance and class didn't work. query("webView css:'div.classy-class > .button'") # Returns an empty array 

Me estoy volviendo loco. ¿Cómo puedo encontrar esto?

Puedes encontrarlo usando xpath:

 query("WebView xpath:'//div[text()=\"text from div\"]/*[@class=\"button\"]'") 

O

 query("WebView xpath:'//div[contains(text(),\"text from div\")]/*[@class=\"button\"]'") 

El segundo es encontrar div por parte de su text. El xpath anterior encuentra solo los botones que son hijos directos del div. Si necesita encontrar todos los botones en este div, use lo siguiente:

 query("WebView xpath:'//div[text()=\"text from div\"]//*[@class=\"button\"]'")