File tree Expand file tree Collapse file tree
main/java/io/appium/java_client/pagefactory
test/java/io/appium/java_client/pagefactory_tests Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -184,7 +184,7 @@ private Object decorateWidget(Field field) {
184184 return null ;
185185 }
186186
187- Class <? extends Widget > widgetType ;
187+ Class <? extends Widget > widgetType = null ;
188188 boolean isAlist = false ;
189189 if (List .class .isAssignableFrom (type )) {
190190 isAlist = true ;
@@ -199,11 +199,15 @@ private Object decorateWidget(Field field) {
199199 listType = ((ParameterizedType ) listType ).getRawType ();
200200 }
201201
202- if (!Widget .class .isAssignableFrom ((Class ) listType )) {
202+ if (listType instanceof Class ) {
203+ if (!Widget .class .isAssignableFrom ((Class ) listType )) {
204+ return null ;
205+ }
206+ widgetType = Class .class .cast (listType );
207+ } else {
203208 return null ;
204209 }
205210
206- widgetType = Class .class .cast (listType );
207211 } else {
208212 widgetType = (Class <? extends Widget >) field .getType ();
209213 }
Original file line number Diff line number Diff line change 1+ package io .appium .java_client .pagefactory_tests ;
2+
3+
4+ import io .appium .java_client .pagefactory .AppiumFieldDecorator ;
5+ import org .junit .Test ;
6+ import org .openqa .selenium .By ;
7+ import org .openqa .selenium .WebDriver ;
8+ import org .openqa .selenium .WebElement ;
9+ import org .openqa .selenium .support .PageFactory ;
10+
11+ import java .util .List ;
12+ import java .util .Set ;
13+
14+ public class GenericTest {
15+
16+ static class TempGenericPage <T > {
17+
18+ public List <T > items ;
19+
20+ public List <T > getItems () {
21+ return items ;
22+ }
23+ }
24+
25+ static class MockWebDriver implements WebDriver {
26+
27+ @ Override
28+ public void get (String url ) {
29+
30+ }
31+
32+ @ Override
33+ public String getCurrentUrl () {
34+ return null ;
35+ }
36+
37+ @ Override
38+ public String getTitle () {
39+ return null ;
40+ }
41+
42+ @ Override
43+ public List <WebElement > findElements (By by ) {
44+ return null ;
45+ }
46+
47+ @ Override
48+ public WebElement findElement (By by ) {
49+ return null ;
50+ }
51+
52+ @ Override
53+ public String getPageSource () {
54+ return null ;
55+ }
56+
57+ @ Override
58+ public void close () {
59+
60+ }
61+
62+ @ Override
63+ public void quit () {
64+
65+ }
66+
67+ @ Override
68+ public Set <String > getWindowHandles () {
69+ return null ;
70+ }
71+
72+ @ Override
73+ public String getWindowHandle () {
74+ return null ;
75+ }
76+
77+ @ Override
78+ public TargetLocator switchTo () {
79+ return null ;
80+ }
81+
82+ @ Override
83+ public Navigation navigate () {
84+ return null ;
85+ }
86+
87+ @ Override
88+ public Options manage () {
89+ return null ;
90+ }
91+ }
92+
93+ @ Test
94+ public void genericTestCse () {
95+ PageFactory
96+ .initElements (new AppiumFieldDecorator (new MockWebDriver ()),
97+ new TempGenericPage <>());
98+ }
99+ }
You can’t perform that action at this time.
0 commit comments