feat(selector): supports javascript regex
This commit is contained in:
@@ -77,7 +77,13 @@ public class CodeGenerator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected String generateCode(UiSelectorGenerator generator, UiObject root, UiObject target, int maxParentLevel, int maxChildrenLevel, boolean withFind) {
|
protected String generateCode(UiSelectorGenerator generator, UiObject root, UiObject target, int maxParentLevel, int maxChildrenLevel, boolean withFind) {
|
||||||
String selector = withFind ? generator.generateSelectorCode() : generator.generateSelector().toString();
|
String selector;
|
||||||
|
if (withFind) {
|
||||||
|
selector = generator.generateSelectorCode();
|
||||||
|
} else {
|
||||||
|
UiGlobalSelector s = generator.generateSelector();
|
||||||
|
selector = s == null ? null : s.toString();
|
||||||
|
}
|
||||||
if (selector != null) {
|
if (selector != null) {
|
||||||
return selector;
|
return selector;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -84,6 +84,38 @@ public class UiSelector extends UiGlobalSelector {
|
|||||||
return findOf(UiObject.createRoot(root, mAllocator));
|
return findOf(UiObject.createRoot(root, mAllocator));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public UiGlobalSelector textMatches(String regex) {
|
||||||
|
return super.textMatches(convertRegex(regex));
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO: 2018/1/30 更好的实现方式。
|
||||||
|
private String convertRegex(String regex) {
|
||||||
|
if (regex.startsWith("/") && regex.endsWith("/") && regex.length() > 2) {
|
||||||
|
return regex.substring(1, regex.length() - 1);
|
||||||
|
}
|
||||||
|
return regex;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public UiGlobalSelector classNameMatches(String regex) {
|
||||||
|
return super.classNameMatches(convertRegex(regex));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public UiGlobalSelector idMatches(String regex) {
|
||||||
|
return super.idMatches(convertRegex(regex));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public UiGlobalSelector packageNameMatches(String regex) {
|
||||||
|
return super.packageNameMatches(convertRegex(regex));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public UiGlobalSelector descMatches(String regex) {
|
||||||
|
return super.descMatches(convertRegex(regex));
|
||||||
|
}
|
||||||
|
|
||||||
private void ensureAccessibilityServiceEnabled() {
|
private void ensureAccessibilityServiceEnabled() {
|
||||||
mAccessibilityBridge.ensureServiceEnabled();
|
mAccessibilityBridge.ensureServiceEnabled();
|
||||||
|
|||||||
Reference in New Issue
Block a user