forked from appium/java-client
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMobileElement.java
More file actions
80 lines (61 loc) · 2.74 KB
/
Copy pathMobileElement.java
File metadata and controls
80 lines (61 loc) · 2.74 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
/*
+Copyright 2014 Appium contributors
+Copyright 2014 Software Freedom Conservancy
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+ */
package io.appium.java_client;
import com.google.common.collect.ImmutableMap;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.*;
import java.util.List;
import java.util.Map;
public class MobileElement extends RemoteWebElement {
private String foundBy;
protected FileDetector fileDetector;
private WebElement webElement;
private MobileDriver parent;
public MobileElement(RemoteWebElement originalElement, MobileDriver parentDriver) {
webElement = originalElement;
this.id = originalElement.getId();
this.parent = parentDriver;
//The super doesn't need the parent object at ALL, it's terrible that it asks for one, when it only needs it for setFoundBy()
super.setParent(new FakeRemoteWebDriver());
}
public List<WebElement> findElements(By by) {
return by.findElements(this);
}
public WebElement findElement(By by) {
return by.findElement(this);
}
public WebElement findElementByIosUIAutomation(String using) { return findElement("-ios uiautomation", using); }
public List<WebElement> findElementsByIosUIAutomation(String using) { return findElements("-ios uiautomation", using); }
public WebElement findElementByAndroidUIAutomator(String using) { return findElement("-android uiautomator", using); }
public List<WebElement> findElementsByAndroidUIAutomator(String using) { return findElements("-android uiautomator", using); }
public WebElement findElementByAccessibilityId(String using) { return findElement("accessibility id", using); }
public List<WebElement> findElementsByAccessibilityId(String using) { return findElements("accessibility id", using); }
public void setValue(String value) {
ImmutableMap.Builder builder = ImmutableMap.builder();
builder.put("id", id).put("value", value);
execute(MobileCommand.SET_VALUE, builder.build());
}
protected Response execute(String command, Map<String, ?> parameters) {
return parent.execute(command, parameters);
}
private class FakeRemoteWebDriver extends RemoteWebDriver {
public FakeRemoteWebDriver() {
//hahaha do NOTHING!
}
}
}