??????????????????iQuery
???????????? ???????[ 2013/2/7 10:09:51 ] ????????
????iQuery???????????????????????????????????????????????????????????
???????????????????iOS???????Object-C??JavaScript?????????Android?????Java????Windows 8?????C#??C++??????????????????Selenium??????????????
????iQuery?????????????Щ??????????????antlr????????????????????????????????????????????????C#??C++??JavaScript??Java??Object-C??Python??Ruby??????????????????????????
????????????????Java??JavaScript??汾????????????????????????????????????iQuery???????????
??????????????????????????Щ?????????????Android???ExpandableListView?? iOS???????????????????????????????????????????????????iOS???UIASwitch?????????????Android?? Windows 8???Radio???????????????iQuery????????????
?????????????????????iQuery????????????????????????????????????Andorid??????????
????“>> ExpandableListView”
???????????????????????????е?ExpandableListView??????iOS????????
????“>> UIAScrollView”
????????????????????????????????iQuery?????????????α???????????????????jQuery???????????α????????????????????????????????
????“:radio”
??????????????iQuery?????????????????:radio??Android????RadioButton???????iOS??????? UIASwitch????Windows Phone????RadioBox?????????????????????α??????????????????????iQuery???????????
??????????????????????????????????iOS????UIAButton.name()??????Android???????mText???????????Щ????????????????е??????е????????????Android????mBottom???????iOS????????
???????????????????????????iQuery?????????????????????????????????????
????iOS???
????“:button [name = ‘???’]”
????Android???
????“:button [mText = ‘???’]”
????????????????????????????iQuery??????α??????????????????????????????????????
????“:button [:text = ‘???’]”
??????α???????α?????????????????????壬????iQuery????????????
????UI???????????????? iOS UI????????????????Andorid UI???????????????????????β????????????????????ν??涼????????????
????????????????ɡ?
??????????????????
???????????????????????iQuery????????????????????????????????????????????????????????
??????????????α??α???????????????????????????????????????????????????????
???????α??
??????Java?汾?У???iQA.Runtime.jar???????????iQueryParser. registerPseudoClass??????????????μ?α?????????£?
???????
????iQueryParser. createParser(String iquery?? boolean registerPseudo)
???????????iQueryParser?????
?????????iQueryParser. registerPseudoClass(String name?? IPseudoClass func)???????μ?α???????????????????????text??α?????????????????????EditText??β??????
????parser.registerPseudoClass("text"?? new IPseudoClass() {
????public boolean resolve(ITreeNode node) {
????return filterByNameEndsWith(node?? "EditText");
????}
????});
??????JavaScript?汾?У????????????α??????????????汾?????????????
???????α????
??????Java???У????iQueryParser.registerPseudoAttribute???????????μ?α????????????£?
???????iQueryParser. createParser(String iquery?? boolean registerPseudo)???????iQueryParser?????
?????????iQueryParser. registerPseudoAttribute (String name?? IPseudoAttribute func)???????μ?α??????????????????????????bottom??α??
????parser.registerPseudoAttribute("bottom"?? new IPseudoAttribute() {
????public String resolve(ITreeNode node) {
????return node.getProperty("mBottom").getValue();
????}
????});
??????iOS??JavaScript?汾?е????????
???????????????JavaScript?????
????#import "common.js";
????#import "antlr3-all-min.js";
????#import "iQueryLexer.js";
????#import "iQueryParser.js";
????#import "error.js";
???????????iQuery?????
????var iq = new iQuery(selector);
???????α?????
????iq.parser.registerPseudoAttrs("bottom"?? function(uiaobj) {
????if ( uiaobj != undefined && uiaobj.rect != undefined ) {
????var rect = uiaobj.rect();
????return rect.origin.y + rect.size.height;
????}
????});
?????????????????
??????????Java?汾????????????????
??????????????iQA.Runtime.jar????????
??????
???·???
??????????????????
2023/3/23 14:23:39???д?ò??????????
2023/3/22 16:17:39????????????????????Щ??
2022/6/14 16:14:27??????????????????????????
2021/10/18 15:37:44???????????????
2021/9/17 15:19:29???·???????·
2021/9/14 15:42:25?????????????
2021/5/28 17:25:47??????APP??????????
2021/5/8 17:01:11