Skip to content

Commit 1cc5603

Browse files
author
Vasyl Vavrychuk
committed
fixed visualizer tests
1 parent 216b55c commit 1cc5603

File tree

5 files changed

+101
-91
lines changed

5 files changed

+101
-91
lines changed

java/client/test/org/openqa/selenium/qtwebkit/visualizer_tests/QtWebDriverJsBaseTest.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,15 @@
2828
import org.openqa.selenium.remote.DesiredCapabilities;
2929
import org.openqa.selenium.remote.service.DriverService;
3030
import org.openqa.selenium.support.PageFactory;
31+
import org.openqa.selenium.support.ui.Wait;
32+
import org.openqa.selenium.support.ui.WebDriverWait;
3133
import org.openqa.selenium.testing.JUnit4TestBase;
3234

3335
public class QtWebDriverJsBaseTest extends JUnit4TestBase {
3436

3537
protected QtWebDriverJsPage page;
3638
protected WebDriver targetDriver;
39+
protected Wait<WebDriver> targetWait;
3740

3841
@Before
3942
public void createDriver() throws Exception {
@@ -43,11 +46,13 @@ public void createDriver() throws Exception {
4346
driver = new QtWebKitDriver(webDriverExecutor, capabilities);
4447
page = PageFactory.initElements(driver, QtWebDriverJsPage.class);
4548
page.setDriver(driver);
49+
wait = new WebDriverWait(driver, 30);
4650

4751
DriverService webDriver2Service = QtWebDriverService.createDefaultService();
4852
QtWebDriverExecutor webDriver2Executor = new QtWebDriverServiceExecutor(webDriver2Service);
4953
targetDriver = new QtWebKitDriver(webDriver2Executor, capabilities);
5054
page.setTargetDriver(targetDriver);
55+
targetWait = new WebDriverWait(targetDriver, 30);
5156

5257
String targetWebDriverUrl = webDriver2Service.getUrl().toExternalForm();
5358
page.setWebDriverUrl(targetWebDriverUrl);

java/client/test/org/openqa/selenium/qtwebkit/visualizer_tests/QtWebDriverJsPage.java

Lines changed: 27 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -25,16 +25,19 @@
2525
import org.json.JSONObject;
2626
import org.openqa.selenium.*;
2727
import org.openqa.selenium.support.FindBy;
28+
import org.openqa.selenium.support.ui.ExpectedCondition;
2829
import org.openqa.selenium.support.ui.Select;
30+
import org.openqa.selenium.support.ui.Wait;
31+
import org.openqa.selenium.support.ui.WebDriverWait;
2932

3033
import java.util.concurrent.Callable;
3134

3235
import static java.util.concurrent.TimeUnit.SECONDS;
3336
import static org.junit.Assert.assertNotNull;
34-
import static org.openqa.selenium.WaitingConditions.alertToBePresent;
3537
import static org.openqa.selenium.WaitingConditions.elementTextToContain;
3638
import static org.openqa.selenium.qtwebkit.visualizer_tests.WaitingConditions.elementToBeDisplayed;
3739
import static org.openqa.selenium.qtwebkit.visualizer_tests.WaitingConditions.pageUrlToBe;
40+
import static org.openqa.selenium.support.ui.ExpectedConditions.alertIsPresent;
3841

3942
public class QtWebDriverJsPage {
4043
private static final long TIME_OUT = 20;
@@ -43,6 +46,9 @@ public class QtWebDriverJsPage {
4346
private WebDriver targetDriver;
4447
private String webDriverJsWindowHandle;
4548

49+
protected Wait<WebDriver> wait;
50+
protected Wait<WebDriver> targetWait;
51+
4652
private WebElement webDriverUrlPort;
4753
private WebElement webPage;
4854
private String webPageValue;
@@ -101,12 +107,8 @@ public class QtWebDriverJsPage {
101107
@FindBy(xpath = "//input[@value = 'Set window size']")
102108
private WebElement windowSizeButton;
103109

104-
private static <X> X waitFor(Callable<X> until) {
105-
return TestWaiter.waitFor(until, TIME_OUT, SECONDS);
106-
}
107-
108110
private Point getLocationFromAlert(String caption) {
109-
waitFor(alertToBePresent(driver));
111+
wait.until(alertIsPresent());
110112
String value = driver.switchTo().alert().getText().replace(caption, "").trim();
111113
driver.switchTo().alert().accept();
112114
try {
@@ -118,7 +120,7 @@ private Point getLocationFromAlert(String caption) {
118120
}
119121

120122
private Dimension getDimensionFromAlert(String caption) {
121-
waitFor(alertToBePresent(driver));
123+
wait.until(alertIsPresent());
122124
String value = driver.switchTo().alert().getText().replace(caption, "").trim();
123125
driver.switchTo().alert().accept();
124126
try {
@@ -130,14 +132,14 @@ private Dimension getDimensionFromAlert(String caption) {
130132
}
131133

132134
private String getStringFromAlert(String caption) {
133-
waitFor(alertToBePresent(driver));
135+
wait.until(alertIsPresent());
134136
String value = driver.switchTo().alert().getText().replace(caption, "").trim();
135137
driver.switchTo().alert().accept();
136138
return value;
137139
}
138140

139141
private boolean getBooleanFromAlert(String caption) {
140-
waitFor(alertToBePresent(driver));
142+
wait.until(alertIsPresent());
141143
String value = driver.switchTo().alert().getText().replace(caption, "").trim();
142144
driver.switchTo().alert().accept();
143145
return Boolean.valueOf(value);
@@ -159,10 +161,12 @@ private String getVisualizerWindowHandle() {
159161

160162
public void setDriver(WebDriver driver) {
161163
this.driver = driver;
164+
wait = new WebDriverWait(driver, TIME_OUT);
162165
}
163166

164167
public void setTargetDriver(WebDriver targetDriver) {
165168
this.targetDriver = targetDriver;
169+
targetWait = new WebDriverWait(targetDriver, TIME_OUT);
166170
}
167171

168172
public String getWebDriverJsWindowHandle() {
@@ -175,10 +179,10 @@ public String getWebDriverUrlPort() {
175179

176180
public void setWebDriverUrl(String url) {
177181
driver.get(url + "/WebDriverJsDemo.html");
178-
waitFor(new Callable<Object>() {
182+
wait.until(new ExpectedCondition<Object>() {
179183
@Override
180-
public Object call() throws Exception {
181-
return ((JavascriptExecutor)driver).executeScript("return window.wd;");
184+
public Object apply(WebDriver driver) {
185+
return ((JavascriptExecutor) driver).executeScript("return window.wd;");
182186
}
183187

184188
@Override
@@ -203,12 +207,12 @@ public void setWebPage(String webPage) {
203207
webPageValue = webPage;
204208
}
205209

206-
public Callable<String> webPageIs(final String expectedWebPage) {
207-
return new Callable<String>() {
210+
public ExpectedCondition<String> webPageIs(final String expectedWebPage) {
211+
return new ExpectedCondition<String>() {
208212
private String actualWebPage;
209213

210214
@Override
211-
public String call() throws Exception {
215+
public String apply(WebDriver driver) {
212216
actualWebPage = getWebPage();
213217

214218
if (expectedWebPage.equals(actualWebPage)) {
@@ -228,7 +232,7 @@ public String toString() {
228232

229233
public void clickGet() {
230234
getButton.click();
231-
waitFor(pageUrlToBe(targetDriver, webPageValue));
235+
targetWait.until(pageUrlToBe(webPageValue));
232236
}
233237

234238
public String clickSource() {
@@ -239,9 +243,9 @@ public String clickSource() {
239243

240244
driver.switchTo().window(webDriverJsWindowHandle);
241245
sourceButton.click();
242-
visualizerWindow = waitFor(new Callable<String>() {
246+
visualizerWindow = wait.until(new ExpectedCondition<String>() {
243247
@Override
244-
public String call() throws Exception {
248+
public String apply(WebDriver driver) {
245249
return getVisualizerWindowHandle();
246250
}
247251
});
@@ -262,13 +266,13 @@ public String findElement(String criteria, String key) {
262266
findElementKey.clear();
263267
findElementKey.sendKeys("c7c3179a38f864a463729657f15871326baccede");
264268
findElementButton.click();
265-
waitFor(elementTextToContain(error, "The element could not be found"));
269+
wait.until(elementTextToContain(error, "The element could not be found"));
266270

267271
new Select(findElementCriteria).selectByValue(criteria);
268272
findElementKey.clear();
269273
findElementKey.sendKeys(key);
270274
findElementButton.click();
271-
waitFor(elementTextToContain(foundElement, "Found element"));
275+
wait.until(elementTextToContain(foundElement, "Found element"));
272276

273277
return foundElement.getText().substring("Found element".length()).trim();
274278
}
@@ -324,9 +328,9 @@ public void keyPress(String label) {
324328
driver.findElement(By.xpath(getKeyXPath(label))).click();
325329

326330
if (label.equals("Shift")) {
327-
waitFor(new Callable<WebElement>() {
331+
wait.until(new ExpectedCondition<WebElement>() {
328332
@Override
329-
public WebElement call() throws Exception {
333+
public WebElement apply(WebDriver driver) {
330334
return driver.findElement(By.xpath(getKeyXPath("A")));
331335
}
332336
});
@@ -344,7 +348,7 @@ private String getKeyXPath(String label) {
344348

345349
public void clickListWindowHandles() {
346350
listWindowButton.click();
347-
waitFor(elementToBeDisplayed(windowList));
351+
wait.until(elementToBeDisplayed(windowList));
348352
}
349353

350354
public Select getWindowListSelect() {

java/client/test/org/openqa/selenium/qtwebkit/visualizer_tests/QtWebDriverJsTest.java

Lines changed: 18 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import org.openqa.selenium.qtwebkit.QtWebKitDriver;
2828
import org.openqa.selenium.remote.DesiredCapabilities;
2929
import org.openqa.selenium.support.PageFactory;
30+
import org.openqa.selenium.support.ui.ExpectedCondition;
3031

3132
import java.util.HashSet;
3233
import java.util.Set;
@@ -39,12 +40,6 @@
3940

4041
public class QtWebDriverJsTest extends QtWebDriverJsBaseTest {
4142

42-
private static final long TIME_OUT = 20;
43-
44-
private static <X> X waitFor(Callable<X> until) {
45-
return TestWaiter.waitFor(until, TIME_OUT, SECONDS);
46-
}
47-
4843
@Test
4944
public void checkWebPageUpdateOnSessionReuse() {
5045
page.setWebPage(pages.clicksPage);
@@ -63,7 +58,7 @@ public void checkWebPageUpdateOnSessionReuse() {
6358
driver.findElement(By.id("getButton")).click();
6459

6560
// shall retrieve web page url from previous session according to MHA-879
66-
waitFor(page.webPageIs(pages.clicksPage));
61+
wait.until(page.webPageIs(pages.clicksPage));
6762
} finally {
6863
originalDriver.quit();
6964
}
@@ -79,13 +74,13 @@ public void checkSourceScreenshotButtonsDisabling() {
7974

8075
page.setWebPage(pages.clicksPage);
8176

82-
waitFor(elementToBeEnabled(sourceButton));
83-
waitFor(elementToBeEnabled(screenshotButton));
77+
wait.until(elementToBeEnabled(sourceButton));
78+
wait.until(elementToBeEnabled(screenshotButton));
8479

8580
page.setWebDriverUrl("");
8681

87-
waitFor(elementToBeDisabled(sourceButton));
88-
waitFor(elementToBeDisabled(screenshotButton));
82+
wait.until(elementToBeDisabled(sourceButton));
83+
wait.until(elementToBeDisabled(screenshotButton));
8984
}
9085

9186
@Test
@@ -94,7 +89,7 @@ public void canScreenshot() {
9489
page.setWebPage(pages.clicksPage);
9590
page.clickScreenshotButton();
9691

97-
String newWindow = waitFor(newWindowIsOpened(driver, originalWindowHandles));
92+
String newWindow = wait.until(newWindowIsOpened(originalWindowHandles));
9893
driver.switchTo().window(newWindow);
9994
Dimension dimension = VisualizerUtils.getDimensionFromTitle(driver.getTitle());
10095
assertTrue("Screenshot has non zero dimension",
@@ -108,7 +103,7 @@ public void canLogDriver() {
108103

109104
Set<String> originalWindowHandles = driver.getWindowHandles();
110105
page.clickLogsSelect("driver");
111-
String newWindow = waitFor(newWindowIsOpened(driver, originalWindowHandles));
106+
String newWindow = wait.until(newWindowIsOpened(originalWindowHandles));
112107
driver.switchTo().window(newWindow);
113108
assertTrue(driver.getPageSource().contains("ALL"));
114109
assertTrue(driver.getPageSource().contains("INFO"));
@@ -124,7 +119,7 @@ public void canLogBrowser() {
124119
Set<String> originalWindowHandles = driver.getWindowHandles();
125120
driver.switchTo().window(page.getWebDriverJsWindowHandle());
126121
page.clickLogsSelect("browser");
127-
String newWindow = waitFor(newWindowIsOpened(driver, originalWindowHandles));
122+
String newWindow = wait.until(newWindowIsOpened(originalWindowHandles));
128123
driver.switchTo().window(newWindow);
129124
assertTrue(driver.getPageSource().contains("Fingerprint"));
130125
}
@@ -203,10 +198,10 @@ public void canCheckFoundElementDisplayed() {
203198
assertFalse(page.isFoundElementDisplayed());
204199
}
205200

206-
private Callable<String> keyPressed(final String key) {
207-
return new Callable<String>() {
201+
private ExpectedCondition<String> keyPressed(final String key) {
202+
return new ExpectedCondition<String>() {
208203
@Override
209-
public String call() throws Exception {
204+
public String apply(WebDriver driver) {
210205
String actualValue = getActualValue();
211206

212207
if (key.equals(actualValue)) {
@@ -250,7 +245,7 @@ public void canKeyPress() {
250245

251246
for (String key : keys) {
252247
page.keyPress(key);
253-
waitFor(keyPressed(key));
248+
wait.until(keyPressed(key));
254249
}
255250

256251
// page.keyPress("Shift");
@@ -267,7 +262,7 @@ public void canListAndChooseWindows() {
267262

268263
Set<String> originalWindowHandles = targetDriver.getWindowHandles();
269264
targetDriver.findElement(By.id("new-window")).click();
270-
waitFor(newWindowIsOpened(targetDriver, originalWindowHandles));
265+
targetWait.until(newWindowIsOpened(originalWindowHandles));
271266

272267
page.clickListWindowHandles();
273268

@@ -282,10 +277,10 @@ public void canListAndChooseWindows() {
282277
String expectedActiveWindow = VisualizerUtils.findNotEqualsIgnoreCase(targetDriver.getWindowHandles(), currentActiveWindow);
283278
page.getWindowListSelect().selectByValue(expectedActiveWindow);
284279
page.clickChooseWindow();
285-
waitFor(activeWindowToBe(targetDriver, expectedActiveWindow));
280+
targetWait.until(activeWindowToBe(expectedActiveWindow));
286281

287282
// Upon choose window, input field 'Web page' shall be update, MHA-879
288-
waitFor(page.webPageIs(pages.xhtmlTestPage));
283+
wait.until(page.webPageIs(pages.xhtmlTestPage));
289284
}
290285

291286
@Test
@@ -294,9 +289,9 @@ public void canSetWindowSize() {
294289
page.clickGet();
295290
final Dimension dimension = new Dimension(200, 100);
296291
page.setWindowSize(dimension);
297-
waitFor(new Callable<Dimension>() {
292+
wait.until(new ExpectedCondition<Dimension>() {
298293
@Override
299-
public Dimension call() throws Exception {
294+
public Dimension apply(WebDriver driver) {
300295
return dimension.equals(targetDriver.manage().window().getSize()) ? dimension : null;
301296
}
302297
});

0 commit comments

Comments
 (0)