Skip to content

Commit f7687da

Browse files
committed
Merge pull request #2 from arachnidium/master
AndroidPageObjectTest improvement.
2 parents 88197f7 + 1d45e63 commit f7687da

File tree

4 files changed

+16
-16
lines changed

4 files changed

+16
-16
lines changed

src/main/java/io/appium/java_client/pagefactory/AppiumElementLocatorFactory.java

+3-5
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,7 @@
88
import org.openqa.selenium.support.pagefactory.ElementLocatorFactory;
99

1010
class AppiumElementLocatorFactory implements ElementLocatorFactory, ResetsImplicitlyWaitTimeOut {
11-
private static long DEFAULT_IMPLICITLY_WAIT_TIMEOUT = 1;
12-
private static TimeUnit DEFAULT_TIMEUNIT = TimeUnit.SECONDS;
13-
14-
private final SearchContext searchContext;
11+
private final SearchContext searchContext;
1512
private final TimeOutContainer timeOutContainer;
1613

1714
public AppiumElementLocatorFactory(SearchContext searchContext,
@@ -21,7 +18,8 @@ public AppiumElementLocatorFactory(SearchContext searchContext,
2118
}
2219

2320
public AppiumElementLocatorFactory(SearchContext searchContext) {
24-
this(searchContext, DEFAULT_IMPLICITLY_WAIT_TIMEOUT, DEFAULT_TIMEUNIT);
21+
this(searchContext, AppiumFieldDecorator.DEFAULT_IMPLICITLY_WAIT_TIMEOUT,
22+
AppiumFieldDecorator.DEFAULT_TIMEUNIT);
2523
}
2624

2725
public ElementLocator createLocator(Field field) {

src/main/java/io/appium/java_client/pagefactory/AppiumFieldDecorator.java

+4
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,10 @@ public class AppiumFieldDecorator implements FieldDecorator, ResetsImplicitlyWai
4747

4848
private final AppiumElementLocatorFactory factory;
4949

50+
public static long DEFAULT_IMPLICITLY_WAIT_TIMEOUT = 1;
51+
52+
public static TimeUnit DEFAULT_TIMEUNIT = TimeUnit.SECONDS;
53+
5054
public AppiumFieldDecorator(SearchContext context, long implicitlyWaitTimeOut, TimeUnit timeUnit) {
5155
factory = new AppiumElementLocatorFactory(context, implicitlyWaitTimeOut, timeUnit);
5256
}

src/test/java/io/appium/java_client/pagefactory_tests/AndroidPageObjectTest.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import java.io.File;
1414
import java.net.URL;
1515
import java.util.List;
16+
import java.util.concurrent.TimeUnit;
1617

1718
import org.junit.After;
1819
import org.junit.Assert;
@@ -140,7 +141,8 @@ public void setUp() throws Exception {
140141
capabilities.setCapability(MobileCapabilityType.APP, app.getAbsolutePath());
141142
driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
142143

143-
PageFactory.initElements(new AppiumFieldDecorator(driver), this);
144+
//This time out is set because test can be run on slow Android SDK emulator
145+
PageFactory.initElements(new AppiumFieldDecorator(driver, 5, TimeUnit.SECONDS), this);
144146
}
145147

146148
@After

src/test/java/io/appium/java_client/pagefactory_tests/TimeOutResetTest.java

+6-10
Original file line numberDiff line numberDiff line change
@@ -13,21 +13,17 @@
1313
import org.openqa.selenium.WebDriver;
1414
import org.openqa.selenium.WebElement;
1515
import org.openqa.selenium.firefox.FirefoxDriver;
16+
import org.openqa.selenium.support.FindAll;
1617
import org.openqa.selenium.support.FindBy;
1718
import org.openqa.selenium.support.PageFactory;
1819

1920
public class TimeOutResetTest {
2021
private WebDriver driver;
2122
private final static long ACCEPTABLE_DELTA_MILLS = 500;
2223

23-
/**
24-
* Default time out parameters
25-
*/
2624

27-
private static long DEFAULT_IMPLICITLY_WAIT_TIMEOUT = 1;
28-
private static TimeUnit DEFAULT_TIMEUNIT = TimeUnit.SECONDS;
29-
30-
@FindBy(className = "ClassWhichDoesNotExist")
25+
@FindAll({@FindBy(className = "ClassWhichDoesNotExist"),
26+
@FindBy(className = "OneAnotherClassWhichDoesNotExist")})
3127
private List<WebElement> stubElements;
3228
private AppiumFieldDecorator afd;
3329

@@ -69,10 +65,10 @@ private long getBenchMark() {
6965

7066
@Test
7167
public void test() {
72-
checkTimeDifference(DEFAULT_IMPLICITLY_WAIT_TIMEOUT, DEFAULT_TIMEUNIT,
68+
checkTimeDifference(AppiumFieldDecorator.DEFAULT_IMPLICITLY_WAIT_TIMEOUT, AppiumFieldDecorator.DEFAULT_TIMEUNIT,
7369
getBenchMark());
74-
System.out.println(String.valueOf(DEFAULT_IMPLICITLY_WAIT_TIMEOUT)
75-
+ " " + DEFAULT_TIMEUNIT.toString() + ": Fine");
70+
System.out.println(String.valueOf(AppiumFieldDecorator.DEFAULT_IMPLICITLY_WAIT_TIMEOUT)
71+
+ " " + AppiumFieldDecorator.DEFAULT_TIMEUNIT.toString() + ": Fine");
7672

7773
afd.resetImplicitlyWaitTimeOut(15500000, TimeUnit.MICROSECONDS);
7874
checkTimeDifference(15500000, TimeUnit.MICROSECONDS, getBenchMark());

0 commit comments

Comments
 (0)