no such element exception selenium
NoSuchElementException: is thrown when the element you are looking for is not in the DOM.
This can happen for four reasons.
- The first is because the element does not exist and never will.
To fix this, change your locator to be correct.
- The second is that you need to do something on the page
to make the element appear. For example, the user selects
Country and javascript populates a City field. If you attempt to look for a city before you select a country, the city you are looking for does not exist and you get a NoSuchElementException. To fix this you have to make sure the steps in your test are in correct order.
- The third is that the element is generated by javascript
but WebDriver attempts to find the element before the
javascript has created it. The fix for this is to use
explicit to wait for the element to appear (visibility and/or clickable).
- The fourth reason might be a frame. Switch to frame
first then locate the web element.