Skip to content

Commit 3183ebe

Browse files
Merge pull request #413 from TikhomirovSergey/#362-fix
#362 fix
2 parents 7ea611d + d8729ba commit 3183ebe

27 files changed

+1147
-59
lines changed

google-style.xml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242
<property name="allowNonPrintableEscapes" value="true"/>
4343
</module>
4444
<module name="LineLength">
45-
<property name="max" value="100"/>
45+
<property name="max" value="120"/>
4646
<property name="ignorePattern" value="^package.*|^import.*|a href|href|http://|https://|ftp://"/>
4747
</module>
4848
<module name="AvoidStarImport">
@@ -181,9 +181,12 @@
181181
<property name="allowSamelineMultipleAnnotations" value="true"/>
182182
</module>
183183
<module name="NonEmptyAtclauseDescription"/>
184-
<module name="JavadocTagContinuationIndentation"/>
184+
<module name="JavadocTagContinuationIndentation">
185+
<property name="severity" value="warning"/>
186+
</module>
185187
<module name="SummaryJavadoc">
186188
<property name="forbiddenSummaryFragments" value="^@return the *|^This method returns |^A [{]@code [a-zA-Z0-9]+[}]( is a )"/>
189+
<property name="severity" value="warning"/>
187190
</module>
188191
<module name="JavadocParagraph">
189192
<property name="severity" value="warning"/>

src/main/java/io/appium/java_client/AppiumDriver.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,7 @@ public List<T> findElementsByXPath(String using) {
263263
}
264264

265265
@Override public List<T> findElementsByAccessibilityId(String using) {
266-
return (List<T>) findElements("accessibility id", using);
266+
return super.findElementsByAccessibilityId(using);
267267
}
268268

269269
@Override protected Response execute(String command) {

src/main/java/io/appium/java_client/DefaultGenericMobileDriver.java

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,6 @@
1616

1717
package io.appium.java_client;
1818

19-
import io.appium.java_client.generic.searchcontext.GenericFindsByClassName;
20-
import io.appium.java_client.generic.searchcontext.GenericFindsByCssSelector;
21-
import io.appium.java_client.generic.searchcontext.GenericFindsById;
22-
import io.appium.java_client.generic.searchcontext.GenericFindsByLinkText;
23-
import io.appium.java_client.generic.searchcontext.GenericFindsByName;
24-
import io.appium.java_client.generic.searchcontext.GenericFindsByTagName;
25-
import io.appium.java_client.generic.searchcontext.GenericFindsByXPath;
26-
import io.appium.java_client.generic.searchcontext.GenericSearchContext;
27-
2819
import org.openqa.selenium.By;
2920
import org.openqa.selenium.Capabilities;
3021
import org.openqa.selenium.WebDriverException;
@@ -39,9 +30,7 @@
3930

4031
@SuppressWarnings({"unchecked", "rawtypes"})
4132
abstract class DefaultGenericMobileDriver<T extends WebElement> extends RemoteWebDriver
42-
implements GenericSearchContext<T>, GenericFindsById<T>, GenericFindsByXPath<T>,
43-
GenericFindsByLinkText<T>, GenericFindsByTagName<T>, GenericFindsByClassName<T>,
44-
GenericFindsByCssSelector<T>, GenericFindsByName<T>, MobileDriver {
33+
implements MobileDriver<T> {
4534

4635
public DefaultGenericMobileDriver(CommandExecutor executor, Capabilities desiredCapabilities) {
4736
super(executor, desiredCapabilities);

src/main/java/io/appium/java_client/DefaultGenericMobileElement.java

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,6 @@
1616

1717
package io.appium.java_client;
1818

19-
import io.appium.java_client.generic.searchcontext.GenericFindsByClassName;
20-
import io.appium.java_client.generic.searchcontext.GenericFindsByCssSelector;
21-
import io.appium.java_client.generic.searchcontext.GenericFindsById;
22-
import io.appium.java_client.generic.searchcontext.GenericFindsByLinkText;
23-
import io.appium.java_client.generic.searchcontext.GenericFindsByName;
24-
import io.appium.java_client.generic.searchcontext.GenericFindsByTagName;
25-
import io.appium.java_client.generic.searchcontext.GenericFindsByXPath;
26-
import io.appium.java_client.generic.searchcontext.GenericSearchContext;
27-
28-
2919
import org.openqa.selenium.By;
3020
import org.openqa.selenium.WebDriverException;
3121
import org.openqa.selenium.WebElement;
@@ -37,10 +27,7 @@
3727

3828
@SuppressWarnings({"unchecked", "rawtypes"})
3929
abstract class DefaultGenericMobileElement<T extends WebElement> extends RemoteWebElement
40-
implements GenericSearchContext<T>, GenericFindsById<T>, GenericFindsByXPath<T>,
41-
GenericFindsByLinkText<T>, GenericFindsByTagName<T>, GenericFindsByClassName<T>,
42-
GenericFindsByCssSelector<T>, GenericFindsByName<T>, FindsByAccessibilityId<T>,
43-
TouchableElement {
30+
implements FindsByAccessibilityId<T>, TouchableElement<T> {
4431

4532
@Override public Response execute(String driverCommand, Map<String, ?> parameters) {
4633
return super.execute(driverCommand, parameters);
@@ -50,10 +37,18 @@ abstract class DefaultGenericMobileElement<T extends WebElement> extends RemoteW
5037
return super.findElements(by);
5138
}
5239

40+
@Override public List findElements(String by, String using) {
41+
return super.findElements(by, using);
42+
}
43+
5344
@Override public T findElement(By by) {
5445
return (T) super.findElement(by);
5546
}
5647

48+
@Override public T findElement(String by, String using) {
49+
return (T) super.findElement(by, using);
50+
}
51+
5752
@Override public List findElementsById(String id) {
5853
return super.findElementsById(id);
5954
}

src/main/java/io/appium/java_client/MobileDriver.java

Lines changed: 50 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,17 +16,64 @@
1616

1717
package io.appium.java_client;
1818

19+
import org.openqa.selenium.By;
1920
import org.openqa.selenium.ContextAware;
2021
import org.openqa.selenium.Rotatable;
2122
import org.openqa.selenium.WebDriver;
2223
import org.openqa.selenium.WebElement;
2324
import org.openqa.selenium.html5.LocationContext;
25+
import org.openqa.selenium.internal.FindsByClassName;
26+
import org.openqa.selenium.internal.FindsByCssSelector;
27+
import org.openqa.selenium.internal.FindsById;
28+
import org.openqa.selenium.internal.FindsByLinkText;
29+
import org.openqa.selenium.internal.FindsByName;
30+
import org.openqa.selenium.internal.FindsByTagName;
31+
import org.openqa.selenium.internal.FindsByXPath;
2432
import org.openqa.selenium.remote.Response;
2533

34+
import java.util.List;
2635
import java.util.Map;
2736

28-
public interface MobileDriver extends WebDriver, PerformsTouchActions, ContextAware, Rotatable,
29-
FindsByAccessibilityId<WebElement>, LocationContext, DeviceActionShortcuts, TouchShortcuts,
30-
InteractsWithFiles, InteractsWithApps, HasAppStrings {
37+
public interface MobileDriver<T extends WebElement> extends WebDriver, PerformsTouchActions, ContextAware, Rotatable,
38+
FindsByAccessibilityId<T>, LocationContext, DeviceActionShortcuts, TouchShortcuts,
39+
InteractsWithFiles, InteractsWithApps, HasAppStrings, FindsByClassName, FindsByCssSelector, FindsById,
40+
FindsByLinkText, FindsByName, FindsByTagName, FindsByXPath {
41+
3142
Response execute(String driverCommand, Map<String, ?> parameters);
43+
44+
List<T> findElements(By by);
45+
46+
T findElement(By by);
47+
48+
T findElementByClassName(String className);
49+
50+
List<T> findElementsByClassName(String className);
51+
52+
T findElementByCssSelector(String cssSelector);
53+
54+
List<T> findElementsByCssSelector(String cssSelector);
55+
56+
T findElementById(String id);
57+
58+
List<T> findElementsById(String id);
59+
60+
T findElementByLinkText(String linkText);
61+
62+
List<T> findElementsByLinkText(String linkText);
63+
64+
T findElementByPartialLinkText(String partialLinkText);
65+
66+
List<T> findElementsByPartialLinkText(String partialLinkText);
67+
68+
T findElementByName(String name);
69+
70+
List<T> findElementsByName(String name);
71+
72+
T findElementByTagName(String tagName);
73+
74+
List<T> findElementsByTagName(String tagName);
75+
76+
T findElementByXPath(String xPath);
77+
78+
List<T> findElementsByXPath(String xPath);
3279
}

src/main/java/io/appium/java_client/MobileElement.java

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,8 @@
1919
import org.openqa.selenium.By;
2020
import org.openqa.selenium.Dimension;
2121
import org.openqa.selenium.Point;
22-
import org.openqa.selenium.WebElement;
2322
import org.openqa.selenium.remote.FileDetector;
2423

25-
import java.util.ArrayList;
2624
import java.util.List;
2725

2826
@SuppressWarnings({"unchecked"})
@@ -69,6 +67,10 @@ public Point getCenter() {
6967
return super.findElements(by);
7068
}
7169

70+
@Override public List<MobileElement> findElements(String by, String using) {
71+
return super.findElements(by, using);
72+
}
73+
7274
@Override public List<MobileElement> findElementsById(String id) {
7375
return super.findElementsById(id);
7476
}
@@ -102,11 +104,6 @@ public List<MobileElement> findElementsByXPath(String using) {
102104
}
103105

104106
@Override public List<MobileElement> findElementsByAccessibilityId(String using) {
105-
List<MobileElement> result = new ArrayList<MobileElement>();
106-
List<WebElement> found = findElements("accessibility id", using);
107-
for (WebElement e : found) {
108-
result.add((MobileElement) e);
109-
}
110-
return result;
107+
return super.findElementsByAccessibilityId(using);
111108
}
112109
}

src/main/java/io/appium/java_client/TouchableElement.java

Lines changed: 49 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,61 @@
1616

1717
package io.appium.java_client;
1818

19+
import org.openqa.selenium.By;
1920
import org.openqa.selenium.WebElement;
21+
import org.openqa.selenium.internal.FindsByClassName;
22+
import org.openqa.selenium.internal.FindsByCssSelector;
23+
import org.openqa.selenium.internal.FindsById;
24+
import org.openqa.selenium.internal.FindsByLinkText;
25+
import org.openqa.selenium.internal.FindsByName;
26+
import org.openqa.selenium.internal.FindsByTagName;
27+
import org.openqa.selenium.internal.FindsByXPath;
28+
29+
import java.util.List;
2030

2131
/**
2232
* It supposed that mobile elements could be tappable, swipeable, zoomable and so on.
2333
* This interface extends {@link WebElement} and describes this behavior.
2434
*/
25-
public interface TouchableElement extends WebElement {
35+
public interface TouchableElement<T extends WebElement> extends WebElement, FindsByClassName,
36+
FindsByCssSelector, FindsById,
37+
FindsByLinkText, FindsByName, FindsByTagName, FindsByXPath {
38+
39+
List<T> findElements(By by);
40+
41+
T findElement(By by);
42+
43+
T findElementByClassName(String className);
44+
45+
List<T> findElementsByClassName(String className);
46+
47+
T findElementByCssSelector(String cssSelector);
48+
49+
List<T> findElementsByCssSelector(String cssSelector);
50+
51+
T findElementById(String id);
52+
53+
List<T> findElementsById(String id);
54+
55+
T findElementByLinkText(String linkText);
56+
57+
List<T> findElementsByLinkText(String linkText);
58+
59+
T findElementByPartialLinkText(String partialLinkText);
60+
61+
List<T> findElementsByPartialLinkText(String partialLinkText);
62+
63+
T findElementByName(String name);
64+
65+
List<T> findElementsByName(String name);
66+
67+
T findElementByTagName(String tagName);
68+
69+
List<T> findElementsByTagName(String tagName);
70+
71+
T findElementByXPath(String xPath);
72+
73+
List<T> findElementsByXPath(String xPath);
2674

2775
/**
2876
* Convenience method for pinching the given element.

src/main/java/io/appium/java_client/android/AndroidElement.java

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,7 @@
2323
import io.appium.java_client.MobileElement;
2424

2525
import org.openqa.selenium.WebDriverException;
26-
import org.openqa.selenium.WebElement;
2726

28-
import java.util.ArrayList;
2927
import java.util.List;
3028

3129

@@ -37,20 +35,15 @@ public class AndroidElement extends MobileElement
3735
*/
3836
@Override public MobileElement findElementByAndroidUIAutomator(String using)
3937
throws WebDriverException {
40-
return (MobileElement) findElement("-android uiautomator", using);
38+
return findElement("-android uiautomator", using);
4139
}
4240

4341
/**
4442
* @throws WebDriverException This method is not applicable with browser/webview UI.
4543
*/
4644
@Override public List<MobileElement> findElementsByAndroidUIAutomator(String using)
4745
throws WebDriverException {
48-
List<MobileElement> result = new ArrayList<MobileElement>();
49-
List<WebElement> found = findElements("-android uiautomator", using);
50-
for (WebElement e : found) {
51-
result.add((AndroidElement) e);
52-
}
53-
return result;
46+
return findElements("-android uiautomator", using);
5447
}
5548

5649
/**

src/main/java/io/appium/java_client/generic/searchcontext/GenericFindsByClassName.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,12 @@
2020

2121
import java.util.List;
2222

23+
@Deprecated
24+
/**
25+
* This interface became deprecated. Use
26+
* {@link org.openqa.selenium.internal.FindsByClassName}
27+
* instead.
28+
*/
2329
public interface GenericFindsByClassName<T extends WebElement> {
2430
T findElementByClassName(String className);
2531

src/main/java/io/appium/java_client/generic/searchcontext/GenericFindsByCssSelector.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,12 @@
2020

2121
import java.util.List;
2222

23+
@Deprecated
24+
/**
25+
* This interface became deprecated. Use
26+
* {@link org.openqa.selenium.internal.FindsByCssSelector}
27+
* instead.
28+
*/
2329
public interface GenericFindsByCssSelector<T extends WebElement> {
2430
T findElementByCssSelector(String cssSelector);
2531

src/main/java/io/appium/java_client/generic/searchcontext/GenericFindsById.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,12 @@
2020

2121
import java.util.List;
2222

23+
@Deprecated
24+
/**
25+
* This interface became deprecated. Use
26+
* {@link org.openqa.selenium.internal.FindsById}
27+
* instead.
28+
*/
2329
public interface GenericFindsById<T extends WebElement> {
2430
T findElementById(String id);
2531

src/main/java/io/appium/java_client/generic/searchcontext/GenericFindsByLinkText.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,12 @@
2020

2121
import java.util.List;
2222

23+
@Deprecated
24+
/**
25+
* This interface became deprecated. Use
26+
* {@link org.openqa.selenium.internal.FindsByLinkText}
27+
* instead.
28+
*/
2329
public interface GenericFindsByLinkText<T extends WebElement> {
2430
T findElementByLinkText(String linkText);
2531

src/main/java/io/appium/java_client/generic/searchcontext/GenericFindsByName.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,12 @@
2020

2121
import java.util.List;
2222

23+
@Deprecated
24+
/**
25+
* This interface became deprecated. Use
26+
* {@link org.openqa.selenium.internal.FindsByName}
27+
* instead.
28+
*/
2329
public interface GenericFindsByName<T extends WebElement> {
2430
T findElementByName(String name);
2531

src/main/java/io/appium/java_client/generic/searchcontext/GenericFindsByTagName.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,12 @@
2020

2121
import java.util.List;
2222

23+
@Deprecated
24+
/**
25+
* This interface became deprecated. Use
26+
* {@link org.openqa.selenium.internal.FindsByTagName}
27+
* instead.
28+
*/
2329
public interface GenericFindsByTagName<T extends WebElement> {
2430
T findElementByTagName(String tagName);
2531

src/main/java/io/appium/java_client/generic/searchcontext/GenericFindsByXPath.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,12 @@
2020

2121
import java.util.List;
2222

23+
@Deprecated
24+
/**
25+
* This interface became deprecated. Use
26+
* {@link org.openqa.selenium.internal.FindsByXPath}
27+
* instead.
28+
*/
2329
public interface GenericFindsByXPath<T extends WebElement> {
2430
T findElementByXPath(String xPath);
2531

0 commit comments

Comments
 (0)