DWQA Ask QuestionCategory: QuestionsAssignment-Level_Medium: Handle Frame, Actions, Drop Down
Akash Tyagi asked 5 years ago
  1. Navigate to URL: http://the-internet.herokuapp.com/iframe
  2. In the text area type text: “I am a happy person”.
  3. Then Select “I am a” and make it bold.
  4. Then select happy and underline it.
  5. Then select person and strike through.

Expected text as below.
i am a happy person.
Hint: multiple back and forth Frame switch is required.
Actions class is to be used for selecting text

10 Answers
Rahul Staff answered 5 years ago
Start your code here
public class IFrameassignment {

public static void main(String[] args) {
// TODO Auto-generated method stub
WebDriver driver;
System.getProperty("webdriver.chrome.driver","D:\\chromedriver.exe");
driver =new ChromeDriver();
driver.manage().deleteAllCookies();
driver.manage().window().maximize();
driver.manage().timeouts().pageLoadTimeout(30, TimeUnit.SECONDS);
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);

driver.get(" http://the-internet.herokuapp.com/iframe");
driver.switchTo().frame(driver.findElement(By.xpath("//iframe[@id='mce_0_ifr']")));
WebElement text= driver.findElement(By.xpath("//body[@id='tinymce']"));
text.clear();
text.sendKeys("I am a happy person");
Actions act=new Actions(driver);

act.moveToElement(text,0,28).clickAndHold().moveByOffset(28,0).release().perform();
driver.switchTo().defaultContent();
//i[@class='mce-ico mce-i-bold']
driver.findElement(By.xpath("//i[@class='mce-ico mce-i-bold']")).click();
driver.switchTo().frame(driver.findElement(By.xpath("//iframe[@id='mce_0_ifr']")));
text.click();
act.moveToElement(text,36,40).clickAndHold().moveByOffset(40,36).release().perform();
driver.switchTo().defaultContent();
driver.findElement(By.xpath("//span[text()='Format']")).click();
driver.findElement(By.xpath("//span[text()='Underline']")).click();
//span[text()='Format']

driver.switchTo().frame(driver.findElement(By.xpath("//iframe[@id='mce_0_ifr']")));

act.clickAndHold().moveByOffset(57, 0).perform();

act.moveToElement(text,60,70).clickAndHold().moveByOffset(60,0).release(text).perform();
driver.switchTo().defaultContent();
driver.findElement(By.xpath("//span[text()='Format']")).click();
driver.findElement(By.xpath("//span[text()='Strikethrough']")).click();
}

}

Nikita dumbhare Staff answered 5 years ago
package SeleniumPck;

import org.testng.annotations.Test;
import org.testng.annotations.BeforeMethod;

import java.util.List;

import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.interactions.Actions;
import org.testng.annotations.AfterMethod;

public class Frame_Action {

WebDriver driver;

@BeforeMethod

public void beforeMethod() {
System.setProperty("webdriver.chrome.driver", "D:\\chromedriver.exe");
driver=new ChromeDriver();
driver.manage().window().maximize();
driver.get("http://the-internet.herokuapp.com/iframe");
}

@Test
public void iframeActionBold() {

//For Bold
driver.switchTo().frame(driver.findElement(By.xpath("//iframe[@id='mce_0_ifr']")));
WebElement Text1= driver.findElement(By.xpath("//body[@id='tinymce']"));
Text1.clear();
Text1.sendKeys("I am a happy person");
Actions actions = new Actions(driver);
// and some variation of this:
actions.moveToElement(Text1, 0, 10).clickAndHold().moveByOffset(30, 0).release().perform();
//For Underline
driver.switchTo().defaultContent();
driver.findElement(By.xpath("//i[@class='mce-ico mce-i-bold']")).click();
//Text1.sendKeys(Keys.CONTROL+"a");
//Text1.sendKeys(Keys.CONTROL+"b");
//WebElement Text1=driver.findElement(By.xpath("//p[contains[text(),'Your content goes here.']"));
//Text1.clear();
//For Strikethrough
driver.switchTo().frame(driver.findElement(By.xpath("//iframe[@id='mce_0_ifr']")));
Actions actions2 = new Actions(driver);
// and some variation of this:
actions2.moveToElement(Text1, 36, 41).clickAndHold().moveByOffset(41,36).release().perform();
driver.switchTo().defaultContent();
driver.findElement(By.xpath("//button[@id='mceu_2-open']")).click();
driver.findElement(By.xpath("//div[@id='mceu_34']")).click();
driver.findElement(By.xpath("//span[@id='mceu_40-text']")).click();


driver.switchTo().frame(driver.findElement(By.xpath("//iframe[@id='mce_0_ifr']")));
Actions actions3 = new Actions(driver);
// and some variation of this:
actions3.moveToElement(Text1,60,0).clickAndHold().moveByOffset(0,60).release().perform();
driver.switchTo().defaultContent();
driver.findElement(By.xpath("//button[@id='mceu_2-open']")).click();
driver.findElement(By.xpath("//div[@id='mceu_34']")).click();
driver.findElement(By.xpath("//span[@id='mceu_41-text']")).click();





}




@AfterMethod
public void afterMethod() {
}

}
Nikita dumbhare Staff answered 5 years ago
package SeleniumPck;

import org.testng.annotations.Test;
import org.testng.annotations.BeforeMethod;

import java.util.List;

import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.interactions.Actions;
import org.testng.annotations.AfterMethod;

public class Frame_Action {

WebDriver driver;

@BeforeMethod

public void beforeMethod() {
System.setProperty("webdriver.chrome.driver", "D:\\chromedriver.exe");
driver=new ChromeDriver();
driver.manage().window().maximize();
driver.get("http://the-internet.herokuapp.com/iframe");
}

@Test
public void iframeAction() {

//For Bold
driver.switchTo().frame(driver.findElement(By.xpath("//iframe[@id='mce_0_ifr']")));
WebElement Text1= driver.findElement(By.xpath("//body[@id='tinymce']"));
Text1.clear();
Text1.sendKeys("I am a happy person");
Actions actions = new Actions(driver);
actions.moveToElement(Text1, 0, 10).clickAndHold().moveByOffset(30, 0).release().perform();
driver.switchTo().defaultContent();
driver.findElement(By.xpath("//i[@class='mce-ico mce-i-bold']")).click();

//For Underline
driver.switchTo().frame(driver.findElement(By.xpath("//iframe[@id='mce_0_ifr']")));
Actions actions2 = new Actions(driver);
// and some variation of this:
actions2.moveToElement(Text1, 36, 41).clickAndHold().moveByOffset(41,36).release().perform();
driver.switchTo().defaultContent();
driver.findElement(By.xpath("//button[@id='mceu_2-open']")).click();
driver.findElement(By.xpath("//div[@id='mceu_34']")).click();
driver.findElement(By.xpath("//span[@id='mceu_40-text']")).click();

//For Strikethrough
driver.switchTo().frame(driver.findElement(By.xpath("//iframe[@id='mce_0_ifr']")));
Actions actions3 = new Actions(driver);
// and some variation of this:
actions3.moveToElement(Text1,60,0).clickAndHold().moveByOffset(0,60).release().perform();
driver.switchTo().defaultContent();
driver.findElement(By.xpath("//button[@id='mceu_2-open']")).click();
driver.findElement(By.xpath("//div[@id='mceu_34']")).click();
driver.findElement(By.xpath("//span[@id='mceu_41-text']")).click();





}




@AfterMethod
public void afterMethod() {
}

}
Nikita dumbhare Staff answered 5 years ago
package SeleniumPck;

import org.testng.annotations.Test;
import org.testng.annotations.BeforeMethod;

import java.util.List;

import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.interactions.Actions;
import org.testng.annotations.AfterMethod;

public class Frame_Action {

WebDriver driver;

@BeforeMethod

public void beforeMethod() {
System.setProperty("webdriver.chrome.driver", "D:\\chromedriver.exe");
driver=new ChromeDriver();
driver.manage().window().maximize();
driver.get("http://the-internet.herokuapp.com/iframe");
}

@Test
public void iframeAction() {

//For Bold
driver.switchTo().frame(driver.findElement(By.xpath("//iframe[@id='mce_0_ifr']")));
WebElement Text1= driver.findElement(By.xpath("//body[@id='tinymce']"));
Text1.clear();
Text1.sendKeys("I am a happy person");
Actions actions = new Actions(driver);
actions.moveToElement(Text1, 0, 10).clickAndHold().moveByOffset(30, 0).release().perform();
driver.switchTo().defaultContent();
driver.findElement(By.xpath("//i[@class='mce-ico mce-i-bold']")).click();

//For Underline
driver.switchTo().frame(driver.findElement(By.xpath("//iframe[@id='mce_0_ifr']")));
Actions actions2 = new Actions(driver);
// and some variation of this:
actions2.moveToElement(Text1, 36, 41).clickAndHold().moveByOffset(41,36).release().perform();
driver.switchTo().defaultContent();
driver.findElement(By.xpath("//button[@id='mceu_2-open']")).click();
driver.findElement(By.xpath("//div[@id='mceu_34']")).click();
driver.findElement(By.xpath("//span[@id='mceu_40-text']")).click();

//For Strikethrough
driver.switchTo().frame(driver.findElement(By.xpath("//iframe[@id='mce_0_ifr']")));
Actions actions3 = new Actions(driver);
// and some variation of this:
actions3.moveToElement(Text1,60,0).clickAndHold().moveByOffset(0,60).release().perform();
driver.switchTo().defaultContent();
driver.findElement(By.xpath("//button[@id='mceu_2-open']")).click();
driver.findElement(By.xpath("//div[@id='mceu_34']")).click();
driver.findElement(By.xpath("//span[@id='mceu_41-text']")).click();





}




@AfterMethod
public void afterMethod() {
}

}
Bindiya Patil Staff answered 5 years ago

public class Handling_frames {

public static void main(String[] args) throws InterruptedException {
WebDriver driver;
System.setProperty(“webdriver.chrome.driver”, “E:\\chromedriver.exe”);
driver = new ChromeDriver();
driver.manage().window().maximize();
driver.get(“http://the-internet.herokuapp.com/iframe”);
driver.switchTo().frame(driver.findElement(By.xpath(“//iframe[@id=’mce_0_ifr’]”)));
// WebElement Write_Text=driver.findElement(By.xpath(“//iframe[@id=’mce_0_ifr’]”));
WebElement Write_text=driver.findElement(By.id(“tinymce”));
Write_text.clear();
Write_text.sendKeys(“I am happy person”);
Actions act=new Actions(driver);
act.moveToElement( Write_text, 0, 5).clickAndHold().moveByOffset(30, 0).release().perform();
driver.switchTo().defaultContent();
Thread.sleep(2000);
WebElement format=driver.findElement(By.id(“mceu_18-open”));
format.click();
WebElement bold=driver.findElement(By.xpath(“//div[@class=’mce-menu-item mce-menu-item-normal mce-first mce-stack-layout-item’]”));
bold.click();
driver.switchTo().frame(driver.findElement(By.xpath(“//iframe[@id=’mce_0_ifr’]”)));
act.moveToElement( Write_text, 38, 42).clickAndHold().moveByOffset(35, 0).release().perform();
driver.switchTo().defaultContent();
format.click();
driver.findElement(By.xpath(“//div[@id=’mceu_34′]”)).click();
Thread.sleep(2000);
driver.switchTo().frame(driver.findElement(By.xpath(“//iframe[@id=’mce_0_ifr’]”)));
act.moveToElement( Write_text, 80, 85).clickAndHold().moveByOffset(50, 0).release().perform();
driver.switchTo().defaultContent();
format.click();
driver.findElement(By.xpath(“//div[@id=’mceu_35′]”)).click();;

}
}

Sonali Adik Staff answered 5 years ago

public class IFrame_Assgnmnt {
WebDriver driver;
@BeforeMethod
public void beforeM()
{
System.setProperty(“webdriver.chrome.driver”,”C:\\Sonali\\chromedriver.exe”);
driver=new ChromeDriver();
driver.get(” http://the-internet.herokuapp.com/iframe”);
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
}
@Test

public void frame1()
{
driver.switchTo().frame(driver.findElement(By.xpath(“//iframe[@id=’mce_0_ifr’]”)));
WebElement text=driver.findElement(By.xpath(“//body[@id=’tinymce’]”));
text.clear();
text.sendKeys(“I am a happy person”);
//text.sendKeys(Keys.CONTROL+”a”);
// text.sendKeys(Keys.CONTROL+”b”);
//******Validation For Bold***///
Actions a = new Actions(driver);
a.moveToElement(text, 0,10).clickAndHold().moveByOffset(30, 0).release().perform();
driver.switchTo().defaultContent();
driver.findElement(By.xpath(“//i[@class=’mce-ico mce-i-bold’]”)).click();
//*****Validation For Undrline*****
driver.switchTo().frame(driver.findElement(By.xpath(“//iframe[@id=’mce_0_ifr’]”)));
WebElement text1=driver.findElement(By.xpath(“//body[@id=’tinymce’]”));
Actions a1 = new Actions(driver);
a1.moveToElement(text1, 36, 41).clickAndHold().moveByOffset(41, 36).release().perform();
driver.switchTo().defaultContent();
driver.findElement(By.xpath(“//button[@id=’mceu_2-open’]”)).click();
driver.findElement(By.xpath(“//div[@id=’mceu_34′]”)).click();
driver.findElement(By.xpath(“//span[@id=’mceu_40-text’]”)).click();
//****Validation for Strikethrough *****
driver.switchTo().frame(driver.findElement(By.xpath(“//iframe[@id=’mce_0_ifr’]”)));
WebElement text2=driver.findElement(By.xpath(“//body[@id=’tinymce’]”));
Actions a2 = new Actions(driver);
a2.moveToElement(text2, 60, 70).clickAndHold().moveByOffset(60, 0).release().perform();
driver.switchTo().defaultContent();
driver.findElement(By.xpath(“//button[@id=’mceu_2-open’]”)).click();
driver.findElement(By.xpath(“//div[@id=’mceu_34′]”)).click();
driver.findElement(By.xpath(“//span[@id=’mceu_41-text’]”)).click();
}

}

Divyesh Kota Staff answered 5 years ago
Start your code here

Saurabh Punekar


package ReadWriteExcelFile;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.interactions.Actions;
public class Handle_Frame {

public static void main(String[] args) throws InterruptedException {

System.setProperty(“webdriver.chrome.driver”, “D:\\Saurabh\\chromedriver.exe”);
WebDriver driver=new ChromeDriver();
driver.get(“http://the-internet.herokuapp.com/iframe”);
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
driver.switchTo().frame(driver.findElement(By.id(“mce_0_ifr”)));

WebElement Text=driver.findElement(By.id(“tinymce”));
Text.clear();
Text.sendKeys(“I am a happy person”);

Actions SetectText= new Actions(driver);
SetectText.moveToElement(Text, 0, 0).clickAndHold().moveByOffset(33, 0).build().perform();

driver.switchTo().defaultContent();

WebElement Format=driver.findElement(By.id(“mceu_18”));
Format.click();

WebElement Bold=driver.findElement(By.id(“mceu_32”));
Bold.click();

driver.switchTo().frame(driver.findElement(By.id(“mce_0_ifr”)));

Text.click();
SetectText.moveToElement(Text, 39, 0).clickAndHold().moveByOffset(40, 0).build().perform();

driver.switchTo().defaultContent();
Format.click();

WebElement Underline= driver.findElement(By.id(“mceu_34”));
Underline.click();

driver.switchTo().frame(driver.findElement(By.id(“mce_0_ifr”)));
Text.click();

SetectText.moveToElement(Text, 80, 0).clickAndHold().moveByOffset(81,0).build().perform();

driver.switchTo().defaultContent();
Format.click();

WebElement Strikethrough=driver.findElement(By.id(“mceu_35”));
Strikethrough.click();
}
}

Suraj Gaikwad Staff answered 5 years ago

iFrame handling code.

 
driver.get("http://the-internet.herokuapp.com/iframe");


WebElement iframe = driver.findElement(By.xpath("//iframe[@id='mce_0_ifr']"));
driver.switchTo().frame(iframe);

WebElement editor = driver.findElement(By.xpath("//body[@id='tinymce']"));
editor.clear();
editor.sendKeys("I am a happy person");

Actions action = new Actions(driver);
//action.clickAndHold().dragAndDropBy(editor, 100, 0).build().perform();
action.moveToElement(editor,0,28).clickAndHold().moveByOffset(38,0).release().perform();

driver.switchTo().defaultContent();
WebElement bold_button = driver.findElement(By.xpath("//i[@class='mce-ico mce-i-bold']"));
bold_button.click();


driver.switchTo().frame(iframe);
editor.click();
action.moveToElement(editor,42,44).clickAndHold().moveByOffset(40,0).release().perform();

driver.switchTo().defaultContent();

WebElement format_button = driver.findElement(By.xpath("//button[@id='mceu_18-open']"));
format_button.click();

WebElement underline_option = driver.findElement(By.xpath("//div[@id='mceu_35']"));
underline_option.click();

driver.switchTo().frame(iframe);
editor.click();
Thread.sleep(1000);
action.moveToElement(editor,81,84).clickAndHold().moveByOffset(40,0).release().perform();

driver.switchTo().defaultContent();
format_button.click();
WebElement strikethrough_option = driver.findElement(By.xpath("//div[@id='mceu_36']"));
strikethrough_option.click();
Reshma M Staff answered 5 years ago

 

handling iframe code-

driver.get("http://the-internet.herokuapp.com/iframe");
driver.manage().window().maximize();
Actions a = new Actions(driver);
driver.switchTo().frame("mce_0_ifr");
WebElement text = driver.findElement(By.xpath("//body[@id='tinymce']"));
// text.sendKeys(Keys.CLEAR);
text.clear();

text.sendKeys("I am a Happy person .");
a.moveToElement(text, 0, 10).clickAndHold().moveByOffset(34, 0).release().build().perform();
driver.switchTo().defaultContent();
WebElement format = driver.findElement(By.xpath("//button[@id='mceu_18-open']"));
format.click();
WebElement format_Bold = driver.findElement(By.xpath("//span[text()='Bold']"));
format_Bold.click();

driver.switchTo().frame("mce_0_ifr");
a.moveToElement(text,81,84).clickAndHold().moveByOffset(40,0 ).release().build().perform();
driver.switchTo().defaultContent();
format.click();
WebElement format_Strike = driver.findElement(By.xpath("//span[text()='Strikethrough']"));
format_Strike.click();

driver.switchTo().frame("mce_0_ifr");
a.moveToElement(text, 42, 44).clickAndHold().moveByOffset(40, 0).release().build().perform();
driver.switchTo().defaultContent();
format.click();
WebElement format_Underline = driver.findElement(By.xpath("//span[text()='Underline']"));
format_Underline.click();

Reshma M Staff answered 5 years ago

 

handling iframe code-

driver.get("http://the-internet.herokuapp.com/iframe");
driver.manage().window().maximize();
Actions a = new Actions(driver);
driver.switchTo().frame("mce_0_ifr");
WebElement text = driver.findElement(By.xpath("//body[@id='tinymce']"));
// text.sendKeys(Keys.CLEAR);
text.clear();

text.sendKeys("I am a Happy person .");
a.moveToElement(text, 0, 10).clickAndHold().moveByOffset(34, 0).release().build().perform();
driver.switchTo().defaultContent();
WebElement format = driver.findElement(By.xpath("//button[@id='mceu_18-open']"));
format.click();
WebElement format_Bold = driver.findElement(By.xpath("//span[text()='Bold']"));
format_Bold.click();

driver.switchTo().frame("mce_0_ifr");
a.moveToElement(text,81,84).clickAndHold().moveByOffset(40,0 ).release().build().perform();
driver.switchTo().defaultContent();
format.click();
WebElement format_Strike = driver.findElement(By.xpath("//span[text()='Strikethrough']"));
format_Strike.click();

driver.switchTo().frame("mce_0_ifr");
a.moveToElement(text, 42, 44).clickAndHold().moveByOffset(40, 0).release().build().perform();
driver.switchTo().defaultContent();
format.click();
WebElement format_Underline = driver.findElement(By.xpath("//span[text()='Underline']"));
format_Underline.click();