Appium Android: I am seeing error message after running the following Appium script -
after run following appium java code:
package com.appium; io.appium.java_client.appiumdriver; import java.io.file; import java.net.malformedurlexception; import java.net.url; import java.util.list; import org.openqa.selenium.by; import org.openqa.selenium.webelement; import org.openqa.selenium.webdriver; import org.openqa.selenium.remote.capabilitytype; import org.openqa.selenium.remote.desiredcapabilities; import org.junit.*; import org.openqa.selenium.remote.remotewebdriver; import io.appium.java_client.appiumdriver; import io.appium.java_client.android.androiddriver; import org.testng.annotations.test; public class newtest { androiddriver driver; public static void main(string[] args) throws exception { // todo auto-generated method stub // creating class object basictest testcases = new basictest(); // call launch app method testcases.launchmilk(); // call add name method testcases.addname(); } //@test public void launchmilk() throws interruptedexception, malformedurlexception { file app=new file("d:\\radio\\radio_1.5.1700010675.apk"); desiredcapabilities capabilities = new desiredcapabilities(); //name of mobile web browser automate. should empty string if automating app instead. capabilities.setcapability(capabilitytype.browser_name, ""); //which mobile os use: android, ios or firefoxos capabilities.setcapability("platformname", "android"); //mobile os version – in case 4.4 since device running android 4.4.2 capabilities.setcapability(capabilitytype.version, "4.4.2"); //device name – since actual device name found using adb capabilities.setcapability("devicename", "4d000614aef030c3"); //the absolute local path apk capabilities.setcapability("app", app.getabsolutepath()); //java package of tested android app capabilities.setcapability("apppackage", "com.samsung.mdl.radio"); // activity name android activity want run package. need preceded . (example: .mainactivity) capabilities.setcapability("appactivity", ".mainactivity"); // constructor initialize driver object driver = new androiddriver(new url("http://127.0.0.1:4723/wd/hub"), capabilities); thread.sleep(4000); system.out.println("app launched"); //locating 'i agree' button webelement startup = driver.findelementbyid("dialog_positive_button"); //clicking agree button startup.click(); system.out.println("i agree button clicked - wait screen load"); thread.sleep(2000); system.out.println("intro movie playing"); thread.sleep(58000); system.out.println("app launched"); //list<webelement> addcontactbutton = driver.findelementsbyclassname("android.widget.imageview"); webelement globalmenu = driver.findelementbyid("nav_drawer_icon"); //system.out.println(addcontactbutton); globalmenu.click(); } public void addname() throws interruptedexception { system.out.println("test success"); // write tests here //driver.clickonview(driver.getview(com.appium.r.id.dialog_positive_button)); } } the first step of test runs successfully. app gets launched. after executing line:
system.out.println("intro movie playing"); thread.sleep(58000); system.out.println("app launched"); the app not locate next element , test fails:
i see following error message in console:
app launched agree button clicked - wait screen load intro movie playing exception in thread "main" org.openqa.selenium.remote.sessionnotfoundexception: command duration or timeout: 14 milliseconds build info: version: '2.46.0', revision: '87c69e2', time: '2015-06-04 16:17:10' system info: host: 'scs02-lt-005', ip: '105.160.8.32', os.name: 'windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_45' driver info: io.appium.java_client.android.androiddriver capabilities [{app=d:\radio\radio_1.5.1700010675.apk, apppackage=com.samsung.mdl.radio, networkconnectionenabled=true, warnings={}, databaseenabled=false, version=4.4.2, devicename=4d000614aef030c3, platform=linux, appactivity=.mainactivity, desired={app=d:\radio\radio_1.5.1700010675.apk, apppackage=com.samsung.mdl.radio, appactivity=.mainactivity, browsername=, platformname=android, version=4.4.2, devicename=4d000614aef030c3}, platformversion=4.4.2, webstorageenabled=false, locationcontextenabled=false, browsername=, takesscreenshot=true, javascriptenabled=true, platformname=android}] session id: b3d9c76a-5924-4a92-a906-39889e77d37c *** element info: {using=id, value=nav_drawer_icon} @ sun.reflect.nativeconstructoraccessorimpl.newinstance0(native method) @ sun.reflect.nativeconstructoraccessorimpl.newinstance(unknown source) @ sun.reflect.delegatingconstructoraccessorimpl.newinstance(unknown source) @ java.lang.reflect.constructor.newinstance(unknown source) @ org.openqa.selenium.remote.errorhandler.createthrowable(errorhandler.java:204) @ org.openqa.selenium.remote.errorhandler.throwifresponsefailed(errorhandler.java:162) @ org.openqa.selenium.remote.remotewebdriver.execute(remotewebdriver.java:605) @ io.appium.java_client.defaultgenericmobiledriver.execute(defaultgenericmobiledriver.java:27) @ io.appium.java_client.appiumdriver.execute(appiumdriver.java:1) @ io.appium.java_client.android.androiddriver.execute(androiddriver.java:1) @ org.openqa.selenium.remote.remotewebdriver.findelement(remotewebdriver.java:358) @ org.openqa.selenium.remote.remotewebdriver.findelementbyid(remotewebdriver.java:399) @ io.appium.java_client.defaultgenericmobiledriver.findelementbyid(defaultgenericmobiledriver.java:47) @ io.appium.java_client.appiumdriver.findelementbyid(appiumdriver.java:1) @ io.appium.java_client.android.androiddriver.findelementbyid(androiddriver.java:1) @ com.appium.basictest.launchmilk(basictest.java:82) @ com.appium.newtest.main(newtest.java:31) why seeing error? why code not detect next element "nav_drawer_icon" in test? error prevents me running more 1 test in series. using uiautomator locate elements in android app.
thanks in advance.
regards,
pavan
i think close appium command timeout 60 sec. please try increase timeout using --command-timeout desired capability.
Comments
Post a Comment