Skip to content

Commit d26b5cd

Browse files
authored
Add Windows page/test; catch WebDriverException (#237)
1 parent 1f0aa28 commit d26b5cd

File tree

5 files changed

+68
-8
lines changed

5 files changed

+68
-8
lines changed

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
profile=selenium3
2-
version=26.1.2-SNAPSHOT
2+
version=26.2.0-SNAPSHOT
33
org.gradle.java.installations.auto-detect=false
44
org.gradle.java.installations.auto-download=false
55
org.gradle.java.installations.fromEnv=JDK8_HOME,JDK11_HOME

src/main/java/com/nordstrom/automation/selenium/core/DriverManager.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import java.util.concurrent.TimeUnit;
66

77
import org.openqa.selenium.JavascriptExecutor;
8-
import org.openqa.selenium.UnsupportedCommandException;
98
import org.openqa.selenium.WebDriver;
109
import org.openqa.selenium.WebDriver.Timeouts;
1110
import org.openqa.selenium.WebDriverException;
@@ -185,7 +184,7 @@ public static void setDriverTimeouts(final WebDriver driver, final SeleniumConfi
185184

186185
try {
187186
timeouts.pageLoadTimeout(WaitType.PAGE_LOAD.getInterval(config), TimeUnit.SECONDS);
188-
} catch (UnsupportedCommandException e) {
187+
} catch (WebDriverException e) {
189188
// unsupported feature: nothing to do here
190189
}
191190
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package com.nordstrom.automation.selenium.examples;
2+
3+
import org.openqa.selenium.By;
4+
import org.openqa.selenium.WebDriver;
5+
import com.nordstrom.automation.selenium.model.Page;
6+
7+
public class WindowsPage extends Page {
8+
9+
public WindowsPage(WebDriver driver) {
10+
super(driver);
11+
}
12+
13+
protected enum Using implements ByEnum {
14+
EDIT_FIELD(By.className("Edit"));
15+
16+
private By locator;
17+
18+
Using(By locator) {
19+
this.locator = locator;
20+
}
21+
22+
@Override
23+
public By locator() {
24+
return locator;
25+
}
26+
}
27+
28+
public void modifyDocument(String keys) {
29+
findElement(Using.EDIT_FIELD).sendKeys(keys);
30+
}
31+
32+
public String getDocument() {
33+
return findElement(Using.EDIT_FIELD).getText();
34+
}
35+
36+
}

src/main/java/com/nordstrom/automation/selenium/model/Page.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@
22

33
import java.net.URI;
44
import java.util.Arrays;
5+
import java.util.Objects;
56

67
import org.apache.commons.lang3.ArrayUtils;
78
import org.openqa.selenium.SearchContext;
89
import org.openqa.selenium.WebDriver;
910

1011
import com.nordstrom.automation.selenium.annotations.InitialPage;
1112
import com.nordstrom.automation.selenium.annotations.PageUrl;
12-
import com.nordstrom.automation.selenium.exceptions.InitialPageNotSpecifiedException;
1313

1414
/**
1515
* Extend this class when modeling a browser page.
@@ -171,12 +171,11 @@ public String getTitle() {
171171
public static <T extends Page> T openInitialPage(
172172
final InitialPage initialPage, final WebDriver driver, final URI targetUri) {
173173

174+
Objects.requireNonNull(initialPage, "[initialPage] must be non-null");
174175
String url = getInitialUrl(initialPage, targetUri);
175-
if (url == null) {
176-
throw new InitialPageNotSpecifiedException();
176+
if (url != null) {
177+
getUrl(url, driver);
177178
}
178-
179-
getUrl(url, driver);
180179
return newPage((Class<T>) initialPage.value(), driver);
181180
}
182181

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package com.nordstrom.automation.selenium.windows;
2+
3+
import static com.nordstrom.automation.selenium.platform.TargetType.WINDOWS_NAME;
4+
import static org.testng.Assert.assertEquals;
5+
6+
import org.openqa.selenium.Keys;
7+
import org.testng.annotations.Test;
8+
9+
import com.nordstrom.automation.selenium.examples.WindowsPage;
10+
import com.nordstrom.automation.selenium.annotations.InitialPage;
11+
import com.nordstrom.automation.selenium.examples.TestNgTargetRoot;
12+
import com.nordstrom.automation.selenium.platform.TargetPlatform;
13+
14+
@InitialPage(WindowsPage.class)
15+
public class WindowsTest extends TestNgTargetRoot {
16+
17+
@Test
18+
@TargetPlatform(WINDOWS_NAME)
19+
public void testEditing() {
20+
WindowsPage page = getInitialPage();
21+
page.modifyDocument("Hello world!");
22+
assertEquals(page.getDocument(), "Hello world!");
23+
page.modifyDocument(Keys.CONTROL + "z");
24+
}
25+
26+
}

0 commit comments

Comments
 (0)