selenium can not identify the Input tag having attribute as
file. Also selenium is not able to handle windows popup like Open File
Dialog.
Ex:
<input type="file" id="browse1" name="browse"> </file>
So To handle such kind of situation in selenium we have to use third party tools like Autoit, Point Position etc....
Prerequisite/Requirements:
Visual Studio
NUnit: Testing Framework.
Point Position software / Tool: To find the X and Y coordinate of "Browse" Button.
point Position Tool: download it from this link: http://freewareapp.com/point-position_download/Point Position Tool:It is used to to find the x & y coordinate of any control with respect to scree resolution.It has four corner keep any corner on button or any control whose x & Y coordinates you want to find and click it on corner. it will shows the x and y coordinate of it.see in below screen shot.It shows the x & Y coordinate of Open button by using Point Position Tool which is present of OpenFileDialog Window.using System;
using NUnit.Framework;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium;
using OpenQA.Selenium.Support.UI;
using OpenQA.Selenium.Support;
using System.Threading;
using System.Windows;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using System.IO;
namespace UploadingFileOnNaukri
{
[TestFixture]
public class UploadingFile
{
IWebDriver driver = null ;
IWebElement element = null ;
ChromeOptions options = null ;
[SetUp]
public void SetUp()
{
options = new ChromeOptions();
options.AddArgument( " start-maximized " );
driver = new ChromeDriver("G:\\Selenium_Csharp\\Jar\\chromedriver_win32", options);
driver.Navigate().GoToUrl("http://my.naukri.com/manager/createacc2.php?othersrcp=11499&wExp=N");
}
[Test]
public void TestUploadingFileMethod()
{
Thread.Sleep(300);
((IJavaScriptExecutor)driver).ExecuteScript(" window.scrollTo(0,600) ; " ) ;
//explicitly write the X , Y coordinate of Browse button on Naukri by using Point Position Tool.
Thread.Sleep(5000);
int x = 529;
int y = 339;
MouseEvents.LeftMouseClick(x, y);
MouseEvents.LeftMouseClick(x, y);
Thread.Sleep(2000);
//click on d-drive
MouseEvents.LeftMouseClick(491, 401);
//click on Avinash folder which is present in D:\ drive.
Thread.Sleep(3000);
MouseEvents.LeftMouseClick(616, 243);
//click on Open button of File Dialog
Thread.Sleep(3000);
MouseEvents.LeftMouseClick(886,552);
//Now select the file name FileUpload.txt
Thread.Sleep(3000);
MouseEvents.LeftMouseClick(623,241);
//Now finally click on open Button to open / upload the selected file.
Thread.Sleep(3000);
MouseEvents.LeftMouseClick(886,552);
Thread.Sleep(7000);
}
[TearDown]
public void TearDown()
{
element = null;
driver.Quit();
}
}
}Add another File in existing projectRight Click on project -> Add new class -> Name as MouseEvents.csWrite the below code into it:using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Drawing;
namespace UploadingFileOnNaukri
{
class MouseEvents
{
private const UInt32 MOUSEEVENTF_LEFTDOWN = 0x0002;
private const UInt32 MOUSEEVENTF_LEFTUP = 0x0004;
[System.Runtime.InteropServices.DllImport("user32.dll")]
private static extern void mouse_event(uint dwFlags, uint dx, uint dy, uint dwData, uint dwExtraInf);
public static void LeftMouseClick(int xpos, int ypos)
{
int x = Convert.ToInt16(xpos) ; //set x position
int y = Convert.ToInt16(ypos) ; //set y position
Cursor.Position = new Point( x , y ) ;
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0) ; //make left button down
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0) ; //make left button up
}
}
}
See Also Below Links:
Selenium Automation Blogs By Avinash Pande: Upload A File Using Selenium Web Driver In C >>>>> Download Now
ReplyDelete>>>>> Download Full
Selenium Automation Blogs By Avinash Pande: Upload A File Using Selenium Web Driver In C >>>>> Download LINK
>>>>> Download Now
Selenium Automation Blogs By Avinash Pande: Upload A File Using Selenium Web Driver In C >>>>> Download Full
>>>>> Download LINK tB