如何在Android中使用Calabash和TextContent查找WebView元素
我在ios应用程序中有一个webview,它基本上没有id或类。(我知道,对吧?) 但它确实有一个textContent字段,我想用它来选择元素如何在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, "
这是我要查找的元素:
{"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/}