In this example the selenium is not it self capable to handling the "Choose File" button which is located on link: http://my.naukri.com/manager/createacc2.php?othersrcp=11499&wExp=N
So we can use Point Position Tool to read the X & Y coordinate of "choose file" button. Then we will pass these X & Y coordinate to Robot Class in java & remaining part will taken care by Robot class.
To Download Point Position toll click on: http://freewareapp.com/point-position_download/ this click.
Requirements:
- Eclipse IDE
- JUnit
- Selenium Standlone_2.40.0_server.jar
- Point Position Tool / Software
First we use the Point position Tool to compute the X & Y coordinate of "Choose file" button. Because selenium WebDriver is not capable to handle this button or even identify. Because its attribute type="file".
See the screenshot of it.
below is the screen shot for How to use the Point Position tool. To compute X & Y coordinate of choose File button on Naukri portal.
See Screen shot for It.
Next:
Open Eclipse IDE
Create a java Project
Create a package under the SRC Folder
Create a TestCase under the package
Write the below code in currently created TestCase.
Code:
package naukri;
import static org.junit.Assert.*;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.datatransfer.StringSelection;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import java.io.File;
import java.util.concurrent.TimeUnit;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.Point;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.firefox.FirefoxBinary;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.server.browserlaunchers.FirefoxLauncher;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
public class FileUploadOnNaukri
{
WebDriver driver = null;
WebElement element = null;
Robot robot = null;
int x = 0;
int y= 0;
@Before
public void setUp()
{
File file = new File("G:\\Selenium\\All_Jars\\chromeDriver.exe");
System.setProperty("webdriver.chrome.driver", file.getAbsolutePath());
driver = new ChromeDriver();
driver.manage().window().maximize();
}
@Test
public void testChooseFileButton() throws Exception
{
driver.get("http://my.naukri.com/manager/createacc2.php?othersrcp=11499&wExp=N");
Thread.sleep(5000);
((JavascriptExecutor)driver).executeScript("window.scrollTo(0,700);");
robot = new Robot();
x = 529; // X coordinates of choosefile control,Values read from Point Position tool
y = 339; // v coordinates of choosefile control,Values read from Point Position tool
robot.mouseMove(x, y);
robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);
robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);
robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
robot = null;
Thread.sleep(5000);
//copy the file path in clipboard
StringSelection ss = new StringSelection("d:\\Avinash.jpg");
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(ss,null);
robot = new Robot();
robot.keyPress(KeyEvent.VK_ENTER); //Press Enter key in file name text box
robot.keyRelease(KeyEvent.VK_ENTER); // Release Enter key
robot.keyPress(KeyEvent.VK_CONTROL); // Press Control Key
robot.keyPress(KeyEvent.VK_V); // Press V- button i.e. paste
robot.keyRelease(KeyEvent.VK_V); // Release V- Key
robot.keyRelease(KeyEvent.VK_CONTROL); //Release Control Key
robot.keyPress(KeyEvent.VK_ENTER); // Press final Enter Key
robot.keyRelease(KeyEvent.VK_ENTER); //Release Enter Key
Thread.sleep(7000);
}
@After
public void tearDown()
{
driver.close();
element = null;
}
}
Good one blog
ReplyDelete