How to locate and type something in the textbox

0
0
public class testFluent {   
WebDriver driver;
@Before
public void setUp(){
driver
= new FirefoxDriver();
driver
.manage().window().maximize();
driver
.manage().deleteAllCookies();}
@Test
public void myFirstFluent(){
WebElement element;
driver
.get("http://www.yahoo.com");
element
= myDynamicElement(By.id("//*[@id='p_13838465-p']"));
System.out.println("Element found");
}
public WebElement myDynamicElement(final By locator){
Wait<WebDriver> wait = new FluentWait<WebDriver>(driver)
.withTimeout(10, TimeUnit.SECONDS)
.pollingEvery(100, TimeUnit.MILLISECONDS)
.ignoring(NoSuchElementException.class);
WebElement element = wait.until(new Function<WebElement, WebDriver>(){
public WebElement apply(WebDriver drv){
return drv.findElement(By.id(locator));
}
});
return element;
}
}

I am unable to locate and ends with Error.

java.lang.Error: Unresolved compilation problems: The method until(Function) in the type Wait is not applicable for the arguments (new Function(){}) Function cannot be resolved to a type

The method id(String) in the type By is not applicable for the arguments (By) at com.junit.qa.testFluent.myDynamicElement(testFluent.java:49)

  • You must to post comments
0
0

For wait you can use something like this

    private boolean wAit(String match)
{
try
{
(new WebDriverWait(driver, 30))
.until(ExpectedConditions.presenceOfElementLocated (By.xpath(match)));
return true;
}
catch (NoSuchElementException e) {
return false;
}
}

You can create the above method and use it where ever you need to wait for an element. for example

if want a write something in the textbox and want to wait for the text box to load

wAit(" xpath of the textbox here")
driver
.findelements... sendkeys()..

If you want you can change the locator type and increase/decrease the time limit also

  • You must to post comments
Showing 1 result
Your Answer
Post as a guest by filling out the fields below or if you already have an account.
Name*
E-mail*
Website