Reputation: 11
I'm looking for an advice how to run Appium server + Android emulator from code. Part of code which I'm trying to use located below. I configured emulator in AVD manager and ran the code, but problem is that since Android emulator is starting slowly and scripts are not waiting for it, that means part of them fails (before emulator is fully loaded). How is it possible to manage this stuff?
ServerArguments serverArguments = new ServerArguments();
serverArguments.setArgument("--address", "127.0.0.1");
serverArguments.setArgument("--port", Integer.valueOf(4723));
serverArguments.setArgument("--no-reset", true);
serverArguments.setArgument("--local-timezone", true);
serverArguments.setArgument("--session-override", true);
serverArguments.setArgument("--avd", "avdname"));
serverArguments.setArgument("--app-activity", "appactivity");
serverArguments.setArgument("--app-pkg", "apppackage");
serverArguments.setArgument("--platform-name", "Android");
serverArguments.setArgument("--platform-version", Integer.valueOf(22));
serverArguments.setArgument("--automation-name", "Appium");
serverArguments.setArgument("--app", "pathtoapk");
AppiumServer appiumServer = new AppiumServer(serverArguments);
appiumServer.startServer();
Upvotes: 0
Views: 837
Reputation: 1135
Use implicitlyWait
driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
// for 60 seconds
// you can increase or decrease the time according to execution speed
Upvotes: 0
Reputation: 11251
I suggest using tests framework such as Junit or TestNG.
Then you will have bunch of annotations that will be handled by framework engine so that you will be able to emphasize which stage should be done Before
test, After
test, or may be done all together in parallel.
@BeforeClass
public void beforeClass() {
appiumServer.startServer();
}
@Test
public void testCase1() {
// run test
}
Upvotes: 2