I have a JSP page with an input text field.
<table> <tr> <td><input type="text" id="searchText" name="searchInput"/></td> </tr> </table>
I wrote a Selenium test case that verifies that the search input text is present.
public class UIRecipeListTest extends SeleneseTestBase { @Before public void setup() { WebDriver driver = new FirefoxDriver( new FirefoxBinary( new File("C:\Program Files (x86)\Mozilla Firefox 3.6\firefox.exe")), new FirefoxProfile() ); String baseUrl = "http://localhost:8080/RecipeProject/"; selenium = new WebDriverBackedSelenium(driver, baseUrl); } @Test public void testShowRecipes() { verifyTrue(selenium.isElementPresent("searchText")); selenium.type("searchText", "salt"); } }
The verifyTrue
test returns true
. However, the selenium.type
test failed with this error:
com.thoughtworks.selenium.SeleniumException: Element searchText not found
What should I do to make the test work?
Advertisement
Answer
The first parameter needs to be a selector. searchText
isn’t a valid CSS or XPath selector.
You would use something like selenium.type("css=input#searchText", "salt");
.
I also wanted to point out that you seem to be going between two versions of Selenium.
selenium.type(String,String)
is from the Selenium 1 API. You should keep to the 1 version, and if it’s going to be Selenium 2, you need to do something like,
WebElement element = driver.findElement(By.id("searchText"))
and use
element.sendKeys("salt");
Source: Selenium API type(String,String)