我在ios应用程序中有一个基本没有id或类的webview。 (我知道,对吧?) 但它确实有一个textContent字段,我想用它来选择元素。
This is the element I want to find:
{"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>"}
所以我能够使用css伪选择器alá
找到它query("webView css:'el:first-child'")
我可以通过使用结果数组中的哈希来找到它
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/}
但这一切感觉真的很脏。非常非Calabashy。有没有更好的方法来写这个?
答案 0 :(得分:1)
我没有尝试过您的确切设置。但我经常在标签上使用LIKE比较查询。 这会解决你的问题吗?
离。 element_exists(&#34;标签{text LIKE&#39; 我想找到&#39;}&#34;)
答案 1 :(得分:1)
我结束了这个:
查询(&#34; webView css:&#39; TITLE&#39; {textContent CONTAINS'I WANT'}&#34;)
由于代码中缺少可访问性标签,因此它可以更加一致地使用这些特定的Web视图。