Swapna D
Swapna D

Reputation: 9

org.openqa.selenium.NoSuchElementException: Unable to locate element:

Code:

public void Test2() throws Exception{ 
Thread.sleep(5000); 
driver.findElement(By.id("cboMenu")).click(); 
driver.findElement(By.xpath(".//*[@id='cboMenu/option[3]")).click();
}

Error:

org.openqa.selenium.NoSuchElementException: Unable to locate element: {"method":"id","selector":"cboMenu"}
Command duration or timeout: 31 milliseconds
For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html
Build info: version: '2.42.2', revision: '6a6995d', time: '2014-06-03 17:42:03'
System info: host: 'venu-PC', ip: '192.168.1.3', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.7.0_51'
Session ID: 0f859bed-35df-4eba-a472-3bc2efec4814
Driver info: org.openqa.selenium.firefox.FirefoxDriver

Upvotes: 0

Views: 45196

Answers (3)

Jayesh
Jayesh

Reputation: 691

this is solved my issue :)

driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
        driver.context("WEBVIEW_com.openstream.cueme.services.workbench");
        Thread.sleep(10000);
        driver.findElementById("userId").sendKeys("sysadmin");
        driver.findElementById("CuemePassword").sendKeys("MMNext13#");

Upvotes: 1

Johnny
Johnny

Reputation: 15423

Please use explicit wait instead of the Thread.sleep(5000), like in the next example. It will provide you much clearer error regarding what you experience.

public void Test2() throws Exception{ 
    new WebDriverWait(driver, 3).until(ExpectedConditions.visibilityOfElementLocated(By.id("cboMenu")))
    driver.findElement(By.id("cboMenu")).click(); 
    driver.findElement(By.xpath(".//*[@id='cboMenu/option[3]")).click();
}

Next, verify your button doesn't appear in different iFrame. If you do, change the iFrame to the one you element inside:

driver.switchTo().frame("IFRAME_ID");

The IFRAME_ID is taken from the DOM:

<iframe id="IFRAME_ID">    

You can next change visibilityOfElementLocated to presenceOfElementLocated, that will verify that an element is present on the DOM but does not necessarily mean that the element is visible. It can be good clue to know if your webDriver is in the correct scope with the button you try to click.

Additional tip - scroll the button you want to click on into view. Thats could be also the reason to failure.

//element is WebElement    
(JavascriptExecutor)driver.executeScript("arguments[0].scrollIntoView(true);", element); 

Upvotes: 9

Rupesh Shinde
Rupesh Shinde

Reputation: 1956

Try below code

public void Test2() throws Exception{
 Thread.sleep(5000);
 driver.findElement(By.id("cboMenu")).click();
 driver.findElement(By.xpath(".//*[@id='cboMenu']/option[3]")).click();

Upvotes: 0

Related Questions