Reputation: 169
I have following selenium IDE code when exported to JUnit 4 (Webdriver) returns an error.
Though It works fine when I export it as Selenium RC.
Kindly tell me the webdriver equivalent for below errors --
IDE Code :
<tr>
<td>deleteAllVisibleCookies</td>
<td></td>
<td></td>
</tr>
<tr>
<td>open</td>
<td>/index.html</td>
<td></td>
</tr>
<tr>
<td>selectFrame</td>
<td>content</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>librarySelect</td>
<td>label=XYZ Software Inc.</td>
</tr>
<tr>
<td>type</td>
<td>userNameInput</td>
<td>demoUser</td>
</tr>
<tr>
<td>type</td>
<td>passwordInput</td>
<td>demoPassword</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submitButton</td>
<td></td>
</tr>
.......
<tr>
<td>clickAndWait</td>
<td>link=Admin</td>
<td></td>
</tr>
.......
Exported Webdriver Code: [Contains Error]
@Test
public void testArchivalLogReport() throws Exception {
// ERROR: Caught exception [ERROR: Unsupported command [deleteAllVisibleCookies | | ]]
driver.get(baseUrl + "/index.html");
// ERROR: Caught exception [ERROR: Unsupported command [selectFrame | content | ]]
// ERROR: Caught exception [Error: locator strategy either id or name must be specified explicitly.]
// ERROR: Caught exception [Error: locator strategy either id or name must be specified explicitly.]
// ERROR: Caught exception [Error: locator strategy either id or name must be specified explicitly.]
// ERROR: Caught exception [Error: locator strategy either id or name must be specified explicitly.]
// ERROR: Caught exception [ERROR: Unsupported command [selectFrame | relative=up | ]]
// ERROR: Caught exception [ERROR: Unsupported command [selectFrame | menu | ]]
driver.findElement(By.linkText("Admin")).click();
// ERROR: Caught exception [ERROR: Unsupported command [selectFrame | relative=up | ]]
// ERROR: Caught exception [ERROR: Unsupported command [selectFrame | content | ]]
driver.findElement(By.xpath("//td[11]/span/b")).click();
// ERROR: Caught exception [Error: locator strategy either id or name must be specified explicitly.]
// ERROR: Caught exception [ERROR: Unsupported command [selectWindow | name=content | ]]
// ERROR: Caught exception [ERROR: Unsupported command [selectFrame | name=content | ]]
// Warning: verifyTextPresent may require manual changes
try {
assertTrue(driver.findElement(By.cssSelector("BODY")).getText().matches("^[\\s\\S]*Data Extract[\\s\\S]*$"));
} catch (Error e) {
verificationErrors.append(e.toString());
}
// ERROR: Caught exception [ERROR: Unsupported command [selectFrame | relative=up | ]]
// ERROR: Caught exception [ERROR: Unsupported command [selectFrame | menu | ]]
driver.findElement(By.xpath("//a/font")).click();
}
Exported RC Code is Fine and looks like :
@Test
public void testArchival Log Report() throws Exception {
selenium.deleteAllVisibleCookies();
selenium.open("/index.html");
selenium.selectFrame("content");
selenium.select("librarySelect", "label=XYZ Software Inc.");
selenium.type("userNameInput", "demoUser");
selenium.type("passwordInput", "demoPassword");
selenium.click("submitButton");
selenium.waitForPageToLoad("30000");
selenium.selectFrame("relative=up");
selenium.selectFrame("menu");
selenium.click("link=Admin");
..........
}
How I am Exporting ? I am using Java/ Junit 4/ Webdriver
I can see Java/ Junit 4/ Webdriver Backed in option, Should I go with that ?? it gives me the same exported file as in Selenium RC option, only change is how we get webdriver.
Upvotes: 1
Views: 6236
Reputation: 169
I figured it out using Webdriver API :
@Test
public void testArchivalLogReport()
throws Exception
{
driver.manage().deleteAllCookies();
driver.get(baseUrl + "/index.html");
driver.switchTo().frame("content");
Select library = new Select(driver.findElement(By.id("librarySelect")));
library.selectByVisibleText("XYZ Software Inc.");
driver.findElement(By.name("userInput")).sendKeys("username");
driver.findElement(By.name("passwordInput")).sendKeys("password");
driver.findElement(By.name("submitButton")).click();
WebDriverWait wait = new WebDriverWait(driver, 120);
wait.until(ExpectedConditions.elementToBeClickable(By
.linkText("Admin")));
// Store the window handle of the parent window, so that you can switch
// back to it later.
String wHandle = driver.getWindowHandle();
driver.findElement(By.linkText("XYZ")).click();
driver.findElement(By.xpath("//td[11]/span/b")).click();
driver.findElement(By.id("someLink")).click();
try
{
assertTrue(driver.findElement(By.cssSelector("BODY")).getText()
.matches("^[\\s\\S]*Data Extract[\\s\\S]*$"));
}
catch (Error e)
{
verificationErrors.append(e.toString());
}
// Switch back to parent window using stored window handle
driver.switchTo().window(wHandle);
driver.switchTo().frame("menu");
driver.findElement(By.xpath("//a/font")).click();
}
Upvotes: 1