Problem ?
How to come back from iframe to main page to work on main page elements? – using selenium webdriver
Solutions is:
myTestDriver.switchTo().defaultContent();
Example>
import java.util.List; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.firefox.FirefoxProfile; import org.openqa.selenium.firefox.internal.ProfilesIni; public class iframeTest { public static void main(String[] args) throws InterruptedException { ProfilesIni allProfiles = new ProfilesIni(); FirefoxProfile myProfile = allProfiles.getProfile("MyTestProfile"); myProfile.setPreference("capability.policy.default.Window.frameElement.get","allAccess"); WebDriver myTestDriver = new FirefoxDriver(myProfile); myTestDriver.manage().window().maximize(); myTestDriver.get("http://tinyurl.com/cb3lbho"); Thread.sleep(5000L); try { List<WebElement> AlliFrameID = myTestDriver.findElements(By.tagName("iframe")); System.out.println(AlliFrameID.size()); for(int i=0;i<=AlliFrameID.size();i++){ System.out.println(AlliFrameID.get(i).getAttribute("id")); } } catch (Exception e) { myTestDriver.switchTo().frame("ifrm"); myTestDriver.findElement(By.xpath("//*[@id='ifrmTest']/p[2]/input")).click(); System.out.println(myTestDriver.findElement(By.xpath("//*[@id='ifrmTest']/p[1]/input")).getAttribute("value")); myTestDriver.findElement(By.xpath("//*[@id='ifrmTest']/p[3]/input")).click(); System.out.println(myTestDriver.findElement(By.xpath("//*[@id='ifrmTest']/p[1]/input")).getAttribute("value")); myTestDriver.findElement(By.xpath("//*[@id='ifrmTest']/p[3]/input")).click(); System.out.println(myTestDriver.findElement(By.xpath("//*[@id='ifrmTest']/p[1]/input")).getAttribute("value")); myTestDriver.findElement(By.xpath("//*[@id='ifrmTest']/p[3]/input")).click(); System.out.println(myTestDriver.findElement(By.xpath("//*[@id='ifrmTest']/p[1]/input")).getAttribute("value")); myTestDriver.switchTo().defaultContent(); myTestDriver.findElement(By.xpath("//*[@id='testForm']/p/input[1]")).sendKeys("Online selenium Training"); myTestDriver.findElement(By.xpath("//*[@id='testForm']/p/input[2]")).click(); } } }