So, you have a web page.
This web page contains a second page, embedded in an iframe.
How do you use Selenium to access the content within the iframe?
Well, it can be done, but it's not immediately obvious.
The xpath matching technique will work with the content it has in the main container page -
but it won't see the content in the iframe page.
For example, if there is a form in the iframe contents, and it has a field called "origin"... Selenium won't be able to see it. It can see as far as the iframe, but that's it.
WebElement myFrame = driver.findElement(By.xpath("codepath to iframe"));
driver.switchTo().frame(myFrame);
Now Selenium can access the form!
WebElement myOriginField = driver.findElement(By.xpath("//input[@id='origin']"));
myOriginField.sendKeys("Glasgow");
And in order to return to the main container page again...
driver.switchTo().defaultContent();