Env:
java-client:1.6.1
Appium:v1.2.0
1:Create class PageObjects
publicclassPageObjects{protectedAppiumDriverdriver;protectedCmSelenium2se2;protectedCmReportcm;publicPageObjects(AppiumDriverdriver,CmSelenium2se2){this.se2=se2;this.cm=se2.cm;this.driver=driver;PageFactory.initElements(driver,this);}publicPageObjects(){}publicvoidinitElements(AppiumDriverdriver){this.driver=driver;PageFactory.initElements(driver,this);}}2:Create class FolderPage:
importcom.mailtech.selenium2.CmSelenium2;importcom.mailtech.selenium2.pageobjects.PageObjects;importorg.openqa.selenium.WebDriver;importorg.openqa.selenium.WebElement;importorg.openqa.selenium.support.FindBy;importio.appium.java_client.pagefactory.AndroidFindBy;publicclassFolderPageextendsPageObjects{
@AndroidFindBy(id="cn.mailtech.app:id/compose")publicWebElementtoMAIl;publicFolderPage(WebDriverdriver,CmSelenium2se2){super(driver,se2);}}3. my test code:
FolderPagefolderPage=newFolderPage(driver,se2);folderPage.toMAIl.click();
error
org.openqa.selenium.NoSuchElementException: Anelementcouldnotbelocatedonthepageusingthegivensearchparameters.(WARNING: Theserverdidnotprovideanystacktraceinformation)Commanddurationor timeout: 231millisecondsFordocumentationonthiserror,please visit: http://seleniumhq.org/exceptions/no_such_element.html
Build info: version: 'unknown',revision: 'unknown',time: 'unknown'
System info: host: 'jli',ip: '192.168.200.85',os.name: 'Windows 7',os.arch: 'amd64',os.version: '6.1',java.version: '1.6.0_39'
Session ID: a69b18bd-9190-4de1-b5fe-09b0efa2800d
Driver info: io.appium.java_client.AppiumDriverCapabilities[{platform=LINUX, javascriptEnabled=true, browserName=, appActivity=cn.mailtech.app.activity.SplashMailtech, desired={newCommandTimeout=100, platformVersion=4.4, deviceName=AndroidEmulator, platformName=Android, browserName=, appActivity=cn.mailtech.app.activity.SplashMailtech, appPackage=cn.mailtech.app},appPackage=cn.mailtech.app, newCommandTimeout=100, platformVersion=4.4, databaseEnabled=false, deviceName=AndroidEmulator, platformName=Android, webStorageEnabled=false, warnings={}, takesScreenshot=true}]atsun.reflect.NativeConstructorAccessorImpl.newInstance0(NativeMethod)atsun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)atsun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)atjava.lang.reflect.Constructor.newInstance(Constructor.java:513)atorg.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:204)atorg.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:156)atorg.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:599)atio.appium.java_client.AppiumDriver.execute(AppiumDriver.java:95)atorg.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:352)atorg.openqa.selenium.remote.RemoteWebDriver.findElementByName(RemoteWebDriver.java:425)atorg.openqa.selenium.By$ByName.findElement(By.java:299)atorg.openqa.selenium.support.ByIdOrName.findElement(ByIdOrName.java:49)atorg.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:344)atorg.openqa.selenium.support.pagefactory.DefaultElementLocator.findElement(DefaultElementLocator.java:59)atorg.openqa.selenium.support.pagefactory.internal.LocatingElementHandler.invoke(LocatingElementHandler.java:34)atsun.proxy.$Proxy9.click(UnknownSource)atcom.mailtech.selenium2.example.appium.cmappTest.Cal.CalTest(Cal.java:115)atcom.mailtech.selenium2.example.appium.cmappTest.Cal.testCal(Cal.java:131)atsun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)atsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)atorg.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)atorg.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)atorg.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)atorg.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)atorg.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)atorg.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)atorg.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)atorg.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)atorg.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)atorg.junit.runners.ParentRunner$3.run(ParentRunner.java:238)atorg.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)atorg.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)atorg.junit.runners.ParentRunner.access$000(ParentRunner.java:53)atorg.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)atorg.junit.runners.ParentRunner.run(ParentRunner.java:309)atorg.junit.runner.JUnitCore.run(JUnitCore.java:160)atcom.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:74)atcom.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:211)atcom.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:67)atsun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)atsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)atcom.intellij.rt.execution.application.AppMain.main(AppMain.java:134)Processfinishedwithexitcode-1My question: why is @AndroidFindBy not working?
when i use @findby ,it is ok!
@FindBy(id="cn.mailtech.app:id/compose")publicWebElementtoMAIl;
Env:
java-client:1.6.1
Appium:v1.2.0
1:Create class PageObjects
2:Create class FolderPage:
3. my test code:
error
My question: why is @AndroidFindBy not working?
when i use @findby ,it is ok!