iFrame:
An iFrame (Inline Frame) is an HTML document embedded inside the current HTML document on a website. iFrame HTML element is used to insert content from another source, such as an advertisement, into a Web page. A Web designer can change an iFrame's content without making them reload the complete website. A website can have multiple frames on a single page.
<title> iFram Tutorial</title>
<div class="box"><iframe name="iframe1" id="IF1" height="400" width="400" src="http://espncricinfo.com"></iframe>
</div><h2>Alert Box</h2><fieldset><legend>Alert Box</legend><p>Click the button to display an alert box.</p><button onclick="alertFunction()">Alerts</button>
<script>
function alertFunction()
{
alert("I am an example for alert box!");
}
</script>
</fieldset><div class="box"><iframe name="iframe2" id="IF2" height="400" width="400" align="left" src="http://alljerseymovers.com"></iframe>
</div>
Step 1: To switch inside a frame
Switch to Frames by Index:
Index of an iFrame is the position at which it occurs in the HTML page. In the above example we have found total number of iFrames. In the sample page we have two IFrames, index of iFrame starts from 0. So there are two iFrames on the page with index 0 and 1.
driver.switchTo().frame(int iframnumber);//pass frame number as parameter.
driver.switchTo().frame(0);
Switch to Frames by Name:
Now if you take a look at the HTMLcode of iFrame you will find that it has Name attribute. Name attribute has a value iframe_name1.
driver.switchTo().frame(String frameName); //pass frame name as parameter.
driver.switchTo().frame("iframe_name1");
Switch to Frame by ID:
Similar to the name attribute in the iFrame tag we also have the ID attribute. We can use that also to switch to the frame.
driver.switchTo().frame(String Id); //pass frame id as parameter.
driver.switchTo().frame("iFram_id1");
Switch to Frame by Web Element:
iFrame by simply passing the iFrame WebElement to the driver.switchTo().frame() command. First find the iFrame element using any of the locator strategies and then passing it to switchTo command
driver.switchTo().frame(WebElement locator );
driver.switchTo().frame(driver.findElement(By.id("iFram_id1")));
Step 2: After switching inside a frame selenium will be able to operate on elements.
driver.findElement(By.partialLinkText("Results")).click();
driver.findElement(By.xpath("/html/body/div[6]/div[2]/div[1]/section[1]/div[1]/ul/li[2]/a")).click();
Step 3: Switching back to Main page from Frame
There is one very important command that will help us to get back to the main page. Main page is the page in which two iFrames are embedded. Once you are done with all the task in a particular iFrame you can switch back to the main page using the
switchTo().defaultContent().
driver.switchTo().defaultContent();
Example
import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class iFram {
public static void main(String[] args) throws InterruptedException {
// Initialize Firefox Web driver
WebDriver driver = new FirefoxDriver();
//Maximize browser window
driver.manage().window().maximize();
//Go to Page
driver.get("file:///C:/Users/Hiro%20Mia/Desktop/iFrame.html");
//Switch by Index
driver.switchTo().frame(0);
//operate web elements on iFram.
driver.findElement(By.xpath("/html/body/div[6]/div[2]/div[1]/section[1]/div[1]/ul/li[2]/a")).click();
//Switch back to the main window
driver.switchTo().defaultContent();
//operate web elements on Main window.
driver.findElement(By.xpath("/html/body/fieldset/button")).click();
//handle to the open confirmation popup.
Alert Confirm = driver.switchTo().alert();
Thread.sleep(3000);
//click on Cancel button.
Confirm.dismiss();
//close browser
driver.quit();
}
}
An iFrame (Inline Frame) is an HTML document embedded inside the current HTML document on a website. iFrame HTML element is used to insert content from another source, such as an advertisement, into a Web page. A Web designer can change an iFrame's content without making them reload the complete website. A website can have multiple frames on a single page.
<title> iFram Tutorial</title>
<div class="box"><iframe name="iframe1" id="IF1" height="400" width="400" src="http://espncricinfo.com"></iframe>
</div><h2>Alert Box</h2><fieldset><legend>Alert Box</legend><p>Click the button to display an alert box.</p><button onclick="alertFunction()">Alerts</button>
<script>
function alertFunction()
{
alert("I am an example for alert box!");
}
</script>
</fieldset><div class="box"><iframe name="iframe2" id="IF2" height="400" width="400" align="left" src="http://alljerseymovers.com"></iframe>
</div>
Step 1: To switch inside a frame
Switch to Frames by Index:
Index of an iFrame is the position at which it occurs in the HTML page. In the above example we have found total number of iFrames. In the sample page we have two IFrames, index of iFrame starts from 0. So there are two iFrames on the page with index 0 and 1.
driver.switchTo().frame(int iframnumber);//pass frame number as parameter.
driver.switchTo().frame(0);
Switch to Frames by Name:
Now if you take a look at the HTMLcode of iFrame you will find that it has Name attribute. Name attribute has a value iframe_name1.
driver.switchTo().frame(String frameName); //pass frame name as parameter.
driver.switchTo().frame("iframe_name1");
Switch to Frame by ID:
Similar to the name attribute in the iFrame tag we also have the ID attribute. We can use that also to switch to the frame.
driver.switchTo().frame(String Id); //pass frame id as parameter.
driver.switchTo().frame("iFram_id1");
Switch to Frame by Web Element:
iFrame by simply passing the iFrame WebElement to the driver.switchTo().frame() command. First find the iFrame element using any of the locator strategies and then passing it to switchTo command
driver.switchTo().frame(WebElement locator );
driver.switchTo().frame(driver.findElement(By.id("iFram_id1")));
Step 2: After switching inside a frame selenium will be able to operate on elements.
driver.findElement(By.partialLinkText("Results")).click();
driver.findElement(By.xpath("/html/body/div[6]/div[2]/div[1]/section[1]/div[1]/ul/li[2]/a")).click();
Step 3: Switching back to Main page from Frame
There is one very important command that will help us to get back to the main page. Main page is the page in which two iFrames are embedded. Once you are done with all the task in a particular iFrame you can switch back to the main page using the
switchTo().defaultContent().
driver.switchTo().defaultContent();
Example
import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class iFram {
public static void main(String[] args) throws InterruptedException {
// Initialize Firefox Web driver
WebDriver driver = new FirefoxDriver();
//Maximize browser window
driver.manage().window().maximize();
//Go to Page
driver.get("file:///C:/Users/Hiro%20Mia/Desktop/iFrame.html");
//Switch by Index
driver.switchTo().frame(0);
//operate web elements on iFram.
driver.findElement(By.xpath("/html/body/div[6]/div[2]/div[1]/section[1]/div[1]/ul/li[2]/a")).click();
//Switch back to the main window
driver.switchTo().defaultContent();
//operate web elements on Main window.
driver.findElement(By.xpath("/html/body/fieldset/button")).click();
//handle to the open confirmation popup.
Alert Confirm = driver.switchTo().alert();
Thread.sleep(3000);
//click on Cancel button.
Confirm.dismiss();
//close browser
driver.quit();
}
}
Thanks for posting such a great blog.you done a great job selenium Online Training Hyderabad
ReplyDeleteThis comment has been removed by the author.
ReplyDelete