diff --git a/src/main/java/io/appium/java_client/pagefactory/AppiumElementLocatorFactory.java b/src/main/java/io/appium/java_client/pagefactory/AppiumElementLocatorFactory.java index 7a2729135..b46e484c6 100644 --- a/src/main/java/io/appium/java_client/pagefactory/AppiumElementLocatorFactory.java +++ b/src/main/java/io/appium/java_client/pagefactory/AppiumElementLocatorFactory.java @@ -8,10 +8,7 @@ import org.openqa.selenium.support.pagefactory.ElementLocatorFactory; class AppiumElementLocatorFactory implements ElementLocatorFactory, ResetsImplicitlyWaitTimeOut { - private static long DEFAULT_IMPLICITLY_WAIT_TIMEOUT = 1; - private static TimeUnit DEFAULT_TIMEUNIT = TimeUnit.SECONDS; - - private final SearchContext searchContext; + private final SearchContext searchContext; private final TimeOutContainer timeOutContainer; public AppiumElementLocatorFactory(SearchContext searchContext, @@ -21,7 +18,8 @@ public AppiumElementLocatorFactory(SearchContext searchContext, } public AppiumElementLocatorFactory(SearchContext searchContext) { - this(searchContext, DEFAULT_IMPLICITLY_WAIT_TIMEOUT, DEFAULT_TIMEUNIT); + this(searchContext, AppiumFieldDecorator.DEFAULT_IMPLICITLY_WAIT_TIMEOUT, + AppiumFieldDecorator.DEFAULT_TIMEUNIT); } public ElementLocator createLocator(Field field) { diff --git a/src/main/java/io/appium/java_client/pagefactory/AppiumFieldDecorator.java b/src/main/java/io/appium/java_client/pagefactory/AppiumFieldDecorator.java index b2e178cc8..c86e385c5 100644 --- a/src/main/java/io/appium/java_client/pagefactory/AppiumFieldDecorator.java +++ b/src/main/java/io/appium/java_client/pagefactory/AppiumFieldDecorator.java @@ -47,6 +47,10 @@ public class AppiumFieldDecorator implements FieldDecorator, ResetsImplicitlyWai private final AppiumElementLocatorFactory factory; + public static long DEFAULT_IMPLICITLY_WAIT_TIMEOUT = 1; + + public static TimeUnit DEFAULT_TIMEUNIT = TimeUnit.SECONDS; + public AppiumFieldDecorator(SearchContext context, long implicitlyWaitTimeOut, TimeUnit timeUnit) { factory = new AppiumElementLocatorFactory(context, implicitlyWaitTimeOut, timeUnit); } diff --git a/src/test/java/io/appium/java_client/pagefactory_tests/AndroidPageObjectTest.java b/src/test/java/io/appium/java_client/pagefactory_tests/AndroidPageObjectTest.java index 9409cf624..66848b2e2 100644 --- a/src/test/java/io/appium/java_client/pagefactory_tests/AndroidPageObjectTest.java +++ b/src/test/java/io/appium/java_client/pagefactory_tests/AndroidPageObjectTest.java @@ -13,6 +13,7 @@ import java.io.File; import java.net.URL; import java.util.List; +import java.util.concurrent.TimeUnit; import org.junit.After; import org.junit.Assert; @@ -140,7 +141,8 @@ public void setUp() throws Exception { capabilities.setCapability(MobileCapabilityType.APP, app.getAbsolutePath()); driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities); - PageFactory.initElements(new AppiumFieldDecorator(driver), this); + //This time out is set because test can be run on slow Android SDK emulator + PageFactory.initElements(new AppiumFieldDecorator(driver, 5, TimeUnit.SECONDS), this); } @After diff --git a/src/test/java/io/appium/java_client/pagefactory_tests/TimeOutResetTest.java b/src/test/java/io/appium/java_client/pagefactory_tests/TimeOutResetTest.java index 21dc76ff3..0b35df625 100644 --- a/src/test/java/io/appium/java_client/pagefactory_tests/TimeOutResetTest.java +++ b/src/test/java/io/appium/java_client/pagefactory_tests/TimeOutResetTest.java @@ -13,6 +13,7 @@ import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; +import org.openqa.selenium.support.FindAll; import org.openqa.selenium.support.FindBy; import org.openqa.selenium.support.PageFactory; @@ -20,14 +21,9 @@ public class TimeOutResetTest { private WebDriver driver; private final static long ACCEPTABLE_DELTA_MILLS = 500; - /** - * Default time out parameters - */ - private static long DEFAULT_IMPLICITLY_WAIT_TIMEOUT = 1; - private static TimeUnit DEFAULT_TIMEUNIT = TimeUnit.SECONDS; - - @FindBy(className = "ClassWhichDoesNotExist") + @FindAll({@FindBy(className = "ClassWhichDoesNotExist"), + @FindBy(className = "OneAnotherClassWhichDoesNotExist")}) private List stubElements; private AppiumFieldDecorator afd; @@ -69,10 +65,10 @@ private long getBenchMark() { @Test public void test() { - checkTimeDifference(DEFAULT_IMPLICITLY_WAIT_TIMEOUT, DEFAULT_TIMEUNIT, + checkTimeDifference(AppiumFieldDecorator.DEFAULT_IMPLICITLY_WAIT_TIMEOUT, AppiumFieldDecorator.DEFAULT_TIMEUNIT, getBenchMark()); - System.out.println(String.valueOf(DEFAULT_IMPLICITLY_WAIT_TIMEOUT) - + " " + DEFAULT_TIMEUNIT.toString() + ": Fine"); + System.out.println(String.valueOf(AppiumFieldDecorator.DEFAULT_IMPLICITLY_WAIT_TIMEOUT) + + " " + AppiumFieldDecorator.DEFAULT_TIMEUNIT.toString() + ": Fine"); afd.resetImplicitlyWaitTimeOut(15500000, TimeUnit.MICROSECONDS); checkTimeDifference(15500000, TimeUnit.MICROSECONDS, getBenchMark());