I'm using driver.findElement(By.xpath("//a[@title='A K T İ V A S Y O N']")); to locate the element given below in the screenshots but getting Unable to find element error.

enter image description here enter image description here enter image description here enter image description here

There are nested classes and frames also. how can I use switch method for nested frames?

My last try is the following one; Screenshot's attached also.enter image description here

driver.findElement(By.xpath("//frameset[@id='fset1']//frame[@name='ax']//frame[@name='menu']//div[@id='vodaMenuDiv']//li[@id='CCBmain']//li[@id='ccbabone']//li[@id='ccbcquery']//a[@title='A K T İ V A S Y O N']")).click();

  • 1
    Check if the element is inside iframe – Alexey R. Apr 15 '19 at 16:15
  • Try xpath using contains text- driver.findElement(By.xpath(".//a[contains(text(),'A K T İ V A S Y O N')]")); – Upkar Singh Apr 16 '19 at 5:38
  • You can also try this may this work for you- driver.findElement(By.xpath(".//li[@id='ccbcquery']/a")); – Upkar Singh Apr 16 '19 at 5:42

If you cannot find an element, you need to check if it is inside a frame (or iframe). A frameset is a way to split a window in multiple frames, which acts as a separate window. Selenium needs to switch to this frame first before you can find elements in it.

Your last image shows that the element is within multiple framesets and frames. As frames are not part of the page, but a sort of page on it own you first need to switch to the frame and then to frame within before you can find the element.

Check out some reads:

| improve this answer | |

Use below alternatives to locate the element-


equivalent css selector is




Pointed to be noted

  1. Make sure element is not in frame if yes then switch into respective frame using driver.switchTo().frame(frameid/element); and then perform action

  2. Use implicit/explicit wait to get element proper load and available in DOM

    driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);

    Explicit Wait :

    new WebDriverWait(driver, 30).until(ExpectedConditions.visibilityOf(driver.findElement(By.cssSelector("li#ccbcquery>a")))).click();
| improve this answer | |
  • It is about frames (not iframes), voting down to push better answers up. Feel free to edit (and tag me in a comment to vote up again) or delete your answer. – Niels van Reijmersdal Apr 19 '19 at 13:51
  • @NielsvanReijmersdal, thanks for suggestion, I have updated the answer – NarendraR Apr 29 '19 at 14:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.