-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMacCalculator.java
102 lines (78 loc) · 3.52 KB
/
MacCalculator.java
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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
import io.appium.java_client.AppiumDriver;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.DesiredCapabilities;
import java.io.IOException;
import java.net.URL;
import java.util.concurrent.TimeUnit;
public class MacCalculator {
private AppiumDriver driver;
String windowPath = "/AXApplication[@AXTitle='Calculator']/AXWindow[0]";
String resultGroupPath = windowPath + "/AXGroup[0]";
String basicGroupPath = windowPath + "/AXGroup[1]";
String scientificGroupPath = windowPath + "/AXGroup[2]";
String programmerGroupPath = windowPath + "/AXGroup[1]";
@Before
public void setUp() throws IOException {
DesiredCapabilities caps = new DesiredCapabilities();
caps.setCapability("platformName", "Mac");
caps.setCapability("deviceName", "Mac");
caps.setCapability("app", "Calculator");
driver = new AppiumDriver(new URL("http://localhost:4723/wd/hub"), caps);
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
}
@After
public void tearDown() {
try {
//driver.quit();
} catch (Exception ign) {}
}
@Test
public void testAddition() {
numtoXpath(2).click();
driver.findElementByXPath(basicGroupPath + "/AXButton[@AXDescription='add']").click();
numtoXpath(3).click();
driver.findElementByXPath(basicGroupPath + "/AXButton[@AXDescription='equals']").click();
WebElement result = driver.findElementByXPath(resultGroupPath + "/AXStaticText[@AXDescription='main display']");
Assert.assertEquals("5", result.getText());
}
@Test
public void testDivision() {
numtoXpath(1).click();
numtoXpath(5).click();
driver.findElementByXPath(basicGroupPath + "/AXButton[@AXDescription='divide']").click();
numtoXpath(5).click();
driver.findElementByXPath(basicGroupPath + "/AXButton[@AXDescription='equals']").click();
WebElement result = driver.findElementByXPath(resultGroupPath + "/AXStaticText[@AXDescription='main display']");
Assert.assertEquals("3", result.getText());
}
public WebElement numtoXpath(int num) {
switch (num) {
case 0:
return driver.findElementByXPath(basicGroupPath+"/AXButton[@AXDescription='zero']");
case 1:
return driver.findElementByXPath(basicGroupPath+"/AXButton[@AXDescription='one']");
case 2:
return driver.findElementByXPath(basicGroupPath+"/AXButton[@AXDescription='two']");
case 3:
return driver.findElementByXPath(basicGroupPath+"/AXButton[@AXDescription='three']");
case 4:
return driver.findElementByXPath(basicGroupPath+"/AXButton[@AXDescription='four']");
case 5:
return driver.findElementByXPath(basicGroupPath+"/AXButton[@AXDescription='five']");
case 6:
return driver.findElementByXPath(basicGroupPath+"/AXButton[@AXDescription='six']");
case 7:
return driver.findElementByXPath(basicGroupPath+"/AXButton[@AXDescription='seven']");
case 8:
return driver.findElementByXPath(basicGroupPath+"/AXButton[@AXDescription='eight']");
case 9:
return driver.findElementByXPath(basicGroupPath+"/AXButton[@AXDescription='nine']");
default:
return null;
}
}
}