Search code examples
djangoseleniumpluploaddjango-testingsplinter

TDD for plupload with Django/Splinter


I'm trying to set up tests for a upload using the plupload queue widget. I'm using Splinter for in-browser test, but I couldn't find a way to make it happen. Splinter has some methods to attach files, but only if it's a simple file field. Another way would be click the button to browse the files, and choose the file... but I don't think it's possible using Splinter (or selenium), is it? Or with drag-n-drop of the files.

Anyone has any suggestion of the best way to automatize theses tests?


Solution

  • Its possible to automate user actions done on PLUpload control using Selenium- WebDriver. Please find the WebDriver C# code below, which clicks on a flash button object and selects a file using keyboard events,

    using System;
    using System.Windows.Forms;
    using OpenQA.Selenium.Firefox;
    using OpenQA.Selenium;
    using OpenQA.Selenium.Support;
    using OpenQA.Selenium.Interactions;
    using NUnit.Framework;
    namespace BusinessCreation
    {
        class PlUpload
        {
            static void Main(string[] args)
            {
                   IWebDriver driver = new FirefoxDriver();
                   driver.Navigate().GoToUrl("http://www.plupload.com/example_queuewidget.php");
                   driver.FindElement(By.XPath("//object[@data='/plupload/js/plupload.flash.swf']")).Click();
                   SendKeys.SendWait(@"C:\Users\Public\Pictures\Sample Pictures\Dock.jpg");
                   SendKeys.SendWait(@"{Enter}");
             }
        }
    }