Continued WebDriver work in progress

This commit is contained in:
Graham Triggs 2015-12-20 15:37:59 +00:00
parent d8fad2b5ab
commit 6aeccfffbb
4 changed files with 154 additions and 459 deletions

View file

@ -719,6 +719,7 @@
<td>id=object</td> <td>id=object</td>
<td>${KEY_DOWN}</td> <td>${KEY_DOWN}</td>
</tr> </tr>
<!-- Reached here -->
<tr> <tr>
<td>click</td> <td>click</td>
<td>id=ui-active-menuitem</td> <td>id=ui-active-menuitem</td>

View file

@ -1,9 +1,11 @@
package org.vivoweb.vivo.selenium.tests; package org.vivoweb.vivo.selenium.tests;
import org.apache.commons.lang3.StringUtils;
import org.junit.After; import org.junit.After;
import org.junit.Assert; import org.junit.Assert;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
import org.openqa.selenium.Alert;
import org.openqa.selenium.By; import org.openqa.selenium.By;
import org.openqa.selenium.Keys; import org.openqa.selenium.Keys;
import org.openqa.selenium.NoSuchElementException; import org.openqa.selenium.NoSuchElementException;
@ -20,6 +22,17 @@ import org.vivoweb.vivo.selenium.SeleniumUtils;
public class AbstractSeleniumTest { public class AbstractSeleniumTest {
protected WebDriver driver; protected WebDriver driver;
public void assertConfirmation(String text) {
WebDriverWait wait = new WebDriverWait(driver, 2);
wait.until(ExpectedConditions.alertIsPresent());
Alert alert = driver.switchTo().alert();
if (!StringUtils.isEmpty(text)) {
Assert.assertTrue(text.equalsIgnoreCase(alert.getText()));
}
alert.accept();
driver.switchTo().defaultContent();
}
protected void assertTitle(String title) { protected void assertTitle(String title) {
Assert.assertEquals(title, driver.getTitle()); Assert.assertEquals(title, driver.getTitle());
} }
@ -60,7 +73,9 @@ public class AbstractSeleniumTest {
} }
protected void type(By by, String text) { protected void type(By by, String text) {
driver.findElement(by).sendKeys(text); WebElement element = driver.findElement(by);
element.click();
element.sendKeys(text);
} }
protected void typeAutoCompleteSelect(By by, String text, Keys... keys) { protected void typeAutoCompleteSelect(By by, String text, Keys... keys) {
@ -77,11 +92,12 @@ public class AbstractSeleniumTest {
} catch (InterruptedException e) { } catch (InterruptedException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} catch (NoSuchElementException nse) { } catch (NoSuchElementException nse) {
for (int i = 0; i < text.length(); i++) { element.clear();
element.sendKeys(Keys.BACK_SPACE); // for (int i = 0; i < text.length(); i++) {
} // element.sendKeys(Keys.BACK_SPACE);
// }
if (count > 4) { if (count > 10) {
throw nse; throw nse;
} }
} }
@ -119,7 +135,8 @@ public class AbstractSeleniumTest {
} }
protected void verifyTextPresent(String text) { protected void verifyTextPresent(String text) {
Assert.assertNotNull(driver.findElement(xpathForTextPresent(text))); Assert.assertTrue(driver.findElement(By.xpath("//body")).getText().contains(text));
// Assert.assertNotNull(driver.findElement(xpathForTextPresent(text)));
} }
protected boolean waitForElementPresent(By by) { protected boolean waitForElementPresent(By by) {

View file

@ -330,13 +330,14 @@ public class CreateOrganization extends AbstractSeleniumTest {
clickAndWait(By.id("submit")); clickAndWait(By.id("submit"));
assertTitle("Primate College of America"); assertTitle("Primate College of America");
clickAndWait(By.cssSelector("li.nonSelectedGroupTab.clickable")); clickAndWait(By.xpath("//div[@id='wrapper-content']/ul/li[14]"));
clickAndWait(By.xpath("(//img[@alt='add'])[14]")); clickAndWait(By.xpath("(//img[@alt='add'])[14]"));
assertTitle("Edit"); assertTitle("Edit");
type(By.id("typeSelector"), "Workshop"); type(By.id("typeSelector"), "Workshop");
type(By.id("activity"), "New Primate Students "); type(By.id("activity"), "New Primate Students ");
type(By.id("startField-year"), "2006"); type(By.id("startField-year"), "2003");
type(By.id("endField-year"), "2006");
clickAndWait(By.id("submit")); clickAndWait(By.id("submit"));
assertTitle("Primate College of America"); assertTitle("Primate College of America");
@ -453,14 +454,14 @@ public class CreateOrganization extends AbstractSeleniumTest {
// Verify everything entered is displaying properly // Verify everything entered is displaying properly
clickAndWait(By.cssSelector("li.nonSelectedGroupTab.clickable")); clickAndWait(By.xpath("//div[@id='wrapper-content']/ul/li[2]"));
verifyTextPresent("PCoA"); verifyTextPresent("PCoA");
verifyTextPresent("1959 -"); verifyTextPresent("1959 -");
verifyElementPresent(By.linkText("B.S. Bachelor of Science")); verifyElementPresent(By.linkText("B.S. Bachelor of Science"));
verifyElementPresent(By.linkText("Primate Student of the Year")); verifyElementPresent(By.linkText("Primate Student of the Year"));
verifyElementPresent(By.linkText("Best Primate College")); verifyElementPresent(By.linkText("Best Primate College"));
clickAndWait(By.cssSelector("li.nonSelectedGroupTab.clickable")); clickAndWait(By.xpath("//div[@id='wrapper-content']/ul/li[4]"));
verifyTextPresent("faculty administrative position"); verifyTextPresent("faculty administrative position");
verifyElementPresent(By.linkText("Person, Polly")); verifyElementPresent(By.linkText("Person, Polly"));
verifyTextPresent("Person, Polly, Dr. 1999 -"); verifyTextPresent("Person, Polly, Dr. 1999 -");

View file

@ -13,6 +13,9 @@ public class DeleteOrganization extends AbstractSeleniumTest {
logIn("testAdmin@cornell.edu", "Password"); logIn("testAdmin@cornell.edu", "Password");
clickAndWait(By.linkText("Index"));
assertTitle("Index of Contents");
clickAndWait(By.linkText("Organization")); clickAndWait(By.linkText("Organization"));
assertTitle("Organization"); assertTitle("Organization");
@ -26,457 +29,130 @@ public class DeleteOrganization extends AbstractSeleniumTest {
assertTitle("Individual Editing Form"); assertTitle("Individual Editing Form");
clickAndWait(By.name("_delete")); clickAndWait(By.name("_delete"));
assertConfirmation("Are you SURE you want to delete this individual? If in doubt, CANCEL.");
try { Thread.sleep(50000); } catch (Exception e) { } assertTitle("VIVO Site Administration");
clickAndWait(By.linkText("Index"));
assertTitle("Index of Contents");
clickAndWait(By.linkText("Organization"));
assertTitle("Organization");
clickAndWait(By.linkText("Primate College of New York"));
assertTitle("Primate College of New York");
clickAndWait(By.linkText("Edit this individual"));
assertTitle("Individual Control Panel");
clickAndWait(By.xpath("//input[@value='Edit This Individual']"));
assertTitle("Individual Editing Form");
clickAndWait(By.name("_delete"));
assertConfirmation("Are you SURE you want to delete this individual? If in doubt, CANCEL.");
assertTitle("VIVO Site Administration");
clickAndWait(By.linkText("Index"));
assertTitle("Index of Contents");
clickAndWait(By.linkText("Organization"));
assertTitle("Organization");
clickAndWait(By.linkText("Primate Colleges of the World"));
assertTitle("Primate Colleges of the World");
clickAndWait(By.linkText("Edit this individual"));
assertTitle("Individual Control Panel");
clickAndWait(By.xpath("//input[@value='Edit This Individual']"));
assertTitle("Individual Editing Form");
clickAndWait(By.name("_delete"));
assertConfirmation("Are you SURE you want to delete this individual? If in doubt, CANCEL.");
assertTitle("VIVO Site Administration");
clickAndWait(By.linkText("Index"));
assertTitle("Index of Contents");
clickAndWait(By.linkText("Organization"));
assertTitle("Organization");
clickAndWait(By.linkText("Primate History Library"));
assertTitle("Primate History Library");
clickAndWait(By.linkText("Edit this individual"));
assertTitle("Individual Control Panel");
clickAndWait(By.xpath("//input[@value='Edit This Individual']"));
assertTitle("Individual Editing Form");
clickAndWait(By.name("_delete"));
assertConfirmation("Are you SURE you want to delete this individual? If in doubt, CANCEL.");
assertTitle("VIVO Site Administration");
clickAndWait(By.linkText("Index"));
assertTitle("Index of Contents");
clickAndWait(By.linkText("Organization"));
assertTitle("Organization");
clickAndWait(By.linkText("Primate Research Laboratory"));
assertTitle("Primate Research Laboratory");
clickAndWait(By.linkText("Edit this individual"));
assertTitle("Individual Control Panel");
clickAndWait(By.xpath("//input[@value='Edit This Individual']"));
assertTitle("Individual Editing Form");
clickAndWait(By.name("_delete"));
assertConfirmation("Are you SURE you want to delete this individual? If in doubt, CANCEL.");
assertTitle("VIVO Site Administration");
clickAndWait(By.linkText("Index"));
assertTitle("Index of Contents");
clickAndWait(By.linkText("Organization"));
assertTitle("Organization");
clickAndWait(By.linkText("Primate University of America"));
assertTitle("Primate University of America");
clickAndWait(By.linkText("Edit this individual"));
assertTitle("Individual Control Panel");
clickAndWait(By.xpath("//input[@value='Edit This Individual']"));
assertTitle("Individual Editing Form");
clickAndWait(By.name("_delete"));
assertConfirmation("Are you SURE you want to delete this individual? If in doubt, CANCEL.");
assertTitle("VIVO Site Administration");
clickAndWait(By.linkText("Index"));
assertTitle("Index of Contents");
clickAndWait(By.linkText("Organization"));
assertTitle("Organization");
clickAndWait(By.linkText("Primates-r-us"));
assertTitle("Primates-r-us");
clickAndWait(By.linkText("Edit this individual"));
assertTitle("Individual Control Panel");
clickAndWait(By.xpath("//input[@value='Edit This Individual']"));
assertTitle("Individual Editing Form");
clickAndWait(By.name("_delete"));
assertConfirmation("Are you SURE you want to delete this individual? If in doubt, CANCEL.");
assertTitle("VIVO Site Administration");
logOut(); logOut();
} }
} }
/*
<tr>
<td>assertConfirmation</td>
<td>Are you SURE you want to delete this individual? If in doubt, CANCEL.</td>
<td></td>
</tr>
<tr>
<td>waitForPageToLoad</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO Site Administration</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Index</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Index of Contents</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Organization</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Organization</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Primate College of New York</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Primate College of New York</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Edit this individual</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Individual Control Panel</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//input[@value='Edit This Individual']</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Individual Editing Form</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>name=_delete</td>
<td></td>
</tr>
<tr>
<td>assertConfirmation</td>
<td>Are you SURE you want to delete this individual? If in doubt, CANCEL.</td>
<td></td>
</tr>
<tr>
<td>waitForPageToLoad</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO Site Administration</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Index</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Index of Contents</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Organization</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Organization</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Primate Colleges of the World</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Primate Colleges of the World</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Edit this individual</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Individual Control Panel</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//input[@value='Edit This Individual']</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Individual Editing Form</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>name=_delete</td>
<td></td>
</tr>
<tr>
<td>assertConfirmation</td>
<td>Are you SURE you want to delete this individual? If in doubt, CANCEL.</td>
<td></td>
</tr>
<tr>
<td>waitForPageToLoad</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO Site Administration</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Index</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Index of Contents</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Organization</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Organization</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Primate History Library</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Primate History Library</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Edit this individual</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Individual Control Panel</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//input[@value='Edit This Individual']</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Individual Editing Form</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>name=_delete</td>
<td></td>
</tr>
<tr>
<td>assertConfirmation</td>
<td>Are you SURE you want to delete this individual? If in doubt, CANCEL.</td>
<td></td>
</tr>
<tr>
<td>waitForPageToLoad</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO Site Administration</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Index</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Index of Contents</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Organization</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Organization</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Primate Research Laboratory</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Primate Research Laboratory</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Edit this individual</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Individual Control Panel</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//input[@value='Edit This Individual']</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Individual Editing Form</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>name=_delete</td>
<td></td>
</tr>
<tr>
<td>assertConfirmation</td>
<td>Are you SURE you want to delete this individual? If in doubt, CANCEL.</td>
<td></td>
</tr>
<tr>
<td>waitForPageToLoad</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO Site Administration</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Index</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Index of Contents</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Organization</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Organization</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Primate University of America</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Primate University of America</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Edit this individual</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Individual Control Panel</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//input[@value='Edit This Individual']</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Individual Editing Form</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>name=_delete</td>
<td></td>
</tr>
<tr>
<td>assertConfirmation</td>
<td>Are you SURE you want to delete this individual? If in doubt, CANCEL.</td>
<td></td>
</tr>
<tr>
<td>waitForPageToLoad</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO Site Administration</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Index</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Index of Contents</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Organization</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Organization</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Primates-r-us</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Primates-r-us</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Edit this individual</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Individual Control Panel</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//input[@value='Edit This Individual']</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Individual Editing Form</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>name=_delete</td>
<td></td>
</tr>
<tr>
<td>assertConfirmation</td>
<td>Are you SURE you want to delete this individual? If in doubt, CANCEL.</td>
<td></td>
</tr>
<tr>
<td>waitForPageToLoad</td>
<td>5000</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>VIVO Site Administration</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Index</td>
<td></td>
</tr>
<tr>
<td>assertTitle</td>
<td>Index of Contents</td>
<td></td>
</tr>
*/