Java 类android.support.test.uiautomator.Configurator 实例源码
项目:appium-uiautomator2-server
文件:HandlersTest.java
/**
* start io.appium.uiautomator2.server and launch the application main activity
*
* @throws InterruptedException
*/
@BeforeClass
public static void beforeStartServer() throws InterruptedException, IOException, SessionRemovedException, JSONException {
if (serverInstrumentation == null) {
assertNotNull(getUiDevice());
ctx = InstrumentationRegistry.getInstrumentation().getContext();
serverInstrumentation = ServerInstrumentation.getInstance(ctx, ServerConfig.getServerPort());
Logger.info("[AppiumUiAutomator2Server]", " Starting Server ");
serverInstrumentation.startServer();
TestHelper.waitForNetty();
createSession();
Configurator.getInstance().setWaitForSelectorTimeout(50000);
Configurator.getInstance().setWaitForIdleTimeout(50000);
}
}
项目:appium-uiautomator2-server
文件:WaitForIdleTimeout.java
public static void updateSetting(int timeout) {
try {
Configurator.getInstance().setWaitForIdleTimeout(timeout);
Logger.debug("Set waitForIdleTimeout to: " + timeout);
} catch (Exception e) {
Logger.error("Error setting waitForIdleTimeout " + e.getMessage());
}
}
项目:appium-uiautomator2-server
文件:UiObjectElement.java
public String getResourceId() throws UiObjectNotFoundException {
String resourceId = "";
if (!API.API_18) {
Logger.error("Device does not support API >= 18!");
return resourceId;
}
try {
/*
* Unfortunately UiObject does not implement a getResourceId method.
* There is currently no way to determine the resource-id of a given
* element represented by UiObject. Until this support is added to
* UiAutomater, we try to match the implementation pattern that is
* already used by UiObject for getting attributes using reflection.
* The returned string matches exactly what is displayed in the
* UiAutomater inspector.
*/
AccessibilityNodeInfo node = (AccessibilityNodeInfo) invoke(method(element.getClass(), "findAccessibilityNodeInfo", long.class),
element, Configurator.getInstance().getWaitForSelectorTimeout());
if (node == null) {
throw new UiObjectNotFoundException(element.getSelector().toString());
}
resourceId = node.getViewIdResourceName();
} catch (final Exception e) {
Logger.error("Exception: " + e + " (" + e.getMessage() + ")");
}
return resourceId;
}
项目:appium-uiautomator2-server
文件:HandlersTest.java
@Before
public void launchAUT() throws InterruptedException, JSONException {
Intent intent = new Intent().setClassName(testAppPkg, testAppPkg + ".ApiDemos").addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
ctx.stopService(intent);
ctx.startActivity(intent);
Logger.info("[AppiumUiAutomator2Server]", " waiting for app to launch ");
TestHelper.waitForAppToLaunch(testAppPkg, 15 * SECOND);
waitForElement(By.accessibilityId("Accessibility"), 10 * SECOND);
getUiDevice().waitForIdle();
Logger.info("Configurator.getInstance().getWaitForSelectorTimeout:" + Configurator.getInstance().getWaitForSelectorTimeout());
element = findElement(By.accessibilityId("Accessibility"));
assertTrue(By.accessibilityId("Accessibility") + " not found", isElementPresent(element));
}
项目:AppCrawler
文件:TestMain.java
@BeforeClass
public static void beforeClass() throws Exception {
Log.v(TAG, new Exception().getStackTrace()[0].getMethodName() + "()");
// Get command line parameters
getArguments();
// Create screenshot folder
File path = Environment.getExternalStorageDirectory();
Config.sOutputDir = new File(String.format("%s/AppCrawler/%s", path.getAbsolutePath(), Config.sTargetPackage));
deleteRecursive(Config.sOutputDir);
if (!Config.sOutputDir.exists()) {
if (!Config.sOutputDir.mkdirs()) {
Log.d(TAG, "Failed to create screenshot folder: " + Config.sOutputDir.getPath());
}
}
// Init File log
Config.sFileLog = Config.sOutputDir + "/" + Config.TAG + ".log";
FileLog.i(TAG_MAIN, "Version: " + Config.VERSION);
// Init Performance log
Config.sPerformanceLog = Config.sOutputDir + "/Performance.csv";
PerformanceMonitor.init();
// Set timeout longer so we can see the ANR dialog?
Configurator conf = Configurator.getInstance();
conf.setActionAcknowledgmentTimeout(200L); // Generally, this timeout should not be modified, default 3000
conf.setScrollAcknowledgmentTimeout(100L); // Generally, this timeout should not be modified, default 200
conf.setWaitForIdleTimeout(0L);
conf.setWaitForSelectorTimeout(0L);
//conf.setKeyInjectionDelay(0L);
logConfiguration();
// Register UiWatchers: ANR, CRASH, ....
UiHelper.registerAnrAndCrashWatchers();
// Good practice to start from the home screen (launcher)
UiHelper.launchHome();
}
项目:AppCrawler
文件:TestMain.java
public static void logConfiguration() {
Configurator conf = Configurator.getInstance();
String log = String.format("ActionAcknowledgmentTimeout:%d," +
" KeyInjectionDelay:%d, " +
"ScrollAcknowledgmentTimeout:%d," +
" WaitForIdleTimeout:%d," +
" WaitForSelectorTimeout:%d",
conf.getActionAcknowledgmentTimeout(),
conf.getKeyInjectionDelay(),
conf.getScrollAcknowledgmentTimeout(),
conf.getWaitForIdleTimeout(),
conf.getWaitForSelectorTimeout());
FileLog.i(TAG_MAIN, log);
FileLog.i(TAG_MAIN, "TargetPackage: " + Config.sTargetPackage +
", Debug: " + Config.sDebug +
", MaxSteps: " + Config.sMaxSteps +
", MaxDepth: " + Config.sMaxDepth +
", MaxRuntime: " + Config.sMaxRuntime +
", MaxScreenshot: " + Config.sMaxScreenshot +
", MaxScreenLoop: " + Config.sMaxScreenLoop +
", ScreenSignatueLength: " + Config.sScreenSignatueLength +
", RandomText: " + Config.sRandomText +
", CaptureSteps: " + Config.sCaptureSteps +
", LaunchTimeout: " + Config.sLaunchTimeout +
", WaitIdleTimeout: " + Config.sWaitIdleTimeout);
}
项目:android-uiautomator-server
文件:ConfiguratorInfo.java
public ConfiguratorInfo() {
Configurator config = Configurator.getInstance();
this._actionAcknowledgmentTimeout = config.getActionAcknowledgmentTimeout();
this._keyInjectionDelay = config.getKeyInjectionDelay();
this._scrollAcknowledgmentTimeout = config.getScrollAcknowledgmentTimeout();
this._waitForIdleTimeout = config.getWaitForIdleTimeout();
this._waitForSelectorTimeout = config.getWaitForSelectorTimeout();
}
项目:android-uiautomator-server
文件:ConfiguratorInfo.java
public static void setConfigurator(ConfiguratorInfo info) {
Configurator config = Configurator.getInstance();
config.setActionAcknowledgmentTimeout(info.getActionAcknowledgmentTimeout());
config.setKeyInjectionDelay(info.getKeyInjectionDelay());
config.setScrollAcknowledgmentTimeout(info.getScrollAcknowledgmentTimeout());
config.setWaitForIdleTimeout(info.getWaitForIdleTimeout());
config.setWaitForSelectorTimeout(info.getWaitForSelectorTimeout());
}
项目:MultiSlider
文件:UiMultiSlider.java
public boolean moveThumbForward() throws UiObjectNotFoundException {
AccessibilityNodeInfo ani =
findAccessibilityNodeInfo(Configurator.getInstance().getWaitForSelectorTimeout());
if (ani == null) {
throw new UiObjectNotFoundException(getSelector().toString());
}
return ani.performAction(AccessibilityNodeInfo.ACTION_SCROLL_FORWARD);
}
项目:MultiSlider
文件:UiMultiSlider.java
public boolean moveThumbBackward() throws UiObjectNotFoundException {
AccessibilityNodeInfo ani =
findAccessibilityNodeInfo(Configurator.getInstance().getWaitForSelectorTimeout());
if (ani == null) {
throw new UiObjectNotFoundException(getSelector().toString());
}
return ani.performAction(AccessibilityNodeInfo.ACTION_SCROLL_BACKWARD);
}
项目:MultiSlider
文件:UiMultiSlider.java
public boolean setThumbValue(int value) throws UiObjectNotFoundException {
AccessibilityNodeInfo ani =
findAccessibilityNodeInfo(Configurator.getInstance().getWaitForSelectorTimeout());
if (ani == null) {
throw new UiObjectNotFoundException(getSelector().toString());
}
Bundle args = new Bundle();
args.putInt("value", value);
return ani.performAction(ACT_SET_PROGRESS, args);
}
项目:UIAutomatorWD
文件:Element.java
public void setText(String text) throws UiObjectNotFoundException {
Configurator config = Configurator.getInstance();
config.setKeyInjectionDelay(20);
element.setText(text);
config.setKeyInjectionDelay(0);
}