如何在Android中使用Calabash和TextContent查找WebView元素

如何在Android中使用Calabash和TextContent查找WebView元素,android,css,regex,webview,calabash,Android,Css,Regex,Webview,Calabash,我在ios应用程序中有一个webview,它基本上没有id或类。(我知道,对吧?) 但它确实有一个textContent字段,我想用它来选择元素 这是我要查找的元素: {"rect"=> {"center_x"=>307.5, "left"=>295, "bottom"=>136, "right"=>320, "top"=>93, "width"=>25, "height"=>43, "

我在ios应用程序中有一个webview,它基本上没有id或类。(我知道,对吧?) 但它确实有一个textContent字段,我想用它来选择元素

这是我要查找的元素:

{"rect"=>
   {"center_x"=>307.5,
    "left"=>295,
    "bottom"=>136,
    "right"=>320,
    "top"=>93,
    "width"=>25,
    "height"=>43,
    "center_y"=>178.5},
  "nodeName"=>"LI",
  "id"=>"",
  "textContent"=>"!!!   I WANT TO FIND IT BY THIS   !!!",
  "center"=>{"X"=>307.5, "Y"=>178.5},
  "nodeType"=>"ELEMENT_NODE",
  "webView"=>
   "<UIWebView: 0xe2e1400; frame = (0 0; 320 504); clipsToBounds = YES; autoresize = W+H
  "class"=>"arrow",
  "html"=>"<div class=\"arrow\"></div>"}
我可以通过使用结果数组中的哈希来找到它

query("webView css:'li'").select {|element| element["textContent"] == "!!!   I WANT TO FIND IT BY THIS   !!!}
我可以对它进行一些重构以使用正则表达式

query("webView css:'li'").select {|element| element["textContent"] =~ /I WANT/}

但这一切感觉真的很肮脏。非常没有葫芦味。有没有更好的方法写这个

我没有尝试过您的精确设置。但我经常在标签上使用类似比较的查询。 这能解决你的问题吗

前。
元素_存在(“标签{像‘我想找到’}这样的文本”)

我最后说:

查询(“webView css:'TITLE'{textContent包含'I WANT'}”)

它倾向于更一致地处理这些特定的Web视图(考虑到代码中缺少可访问性标签)

query("webView css:'li'").select {|element| element["textContent"] =~ /I WANT/}