I am using Selenium RC with Junit framework. I am trying to upload a file using attachFile() method.
attachFile: (Information collected from selenium API http://release.seleniumhq.org/selenium-remote-control/1.0-beta-2/doc/java/com/thoughtworks/selenium/Selenium.html#attachFile(java.lang.String,%20java.lang.String))
void attachFile(java.lang.String fieldLocator,
java.lang.String fileLocator)
Sets a file input (upload) field to the file listed in fileLocator
Parameters:
fieldLocator - an element locator
fileLocator - a URL pointing to the specified file. Before the file can be set
in the input field (fieldLocator), Selenium RC may need to transfer the file to
the local machine before attaching the file in a web page form. This is common in
selenium grid configurations where the RC server driving the browser is not the
same machine that started the test. Supported Browsers: Firefox ("*chrome") only.
Can anyone please tell me how to define "fileLocator". I am not getting which URL to be specify over here. Please give me an example if possible.
I got solution for this, use selenium.focus method and the selenium.keyPressNative/keyReleaseNative methods.
You will need to give focus to the text box using:
selenium.focus("text box locator");
Then if your input file is C:\tools\File.txt you need to type the letters like so:
selenium.keyDownNative("16"); //SHIFT ON
selenium.keyPressNative("67"); // c shift makes it C
selenium.keyPressNative("59"); // ; Shift makes it : (you can't do colon directly)
selenium.keyUpNative("16"); // SHIFT OFF
selenium.keyPressNative("47"); // slash
selenium.keyPressNative("84"); // t
selenium.keyPressNative("79"); // o
selenium.keyPressNative("79"); // o
selenium.keyPressNative("76"); // l
selenium.keyPressNative("83"); // s
selenium.keyPressNative("47"); // slash
selenium.keyDownNative("16"); //SHIFT ON
selenium.keyPressNative("70"); // f shift makes it F
selenium.keyUpNative("16"); // SHIFT OFF
selenium.keyPressNative("73"); // i
selenium.keyPressNative("76"); // l
selenium.keyPressNative("69"); // e
selenium.keyPressNative("46"); // .
selenium.keyPressNative("84"); // t
selenium.keyPressNative("88"); // x
selenium.keyPressNative("84"); // t
selenium.keyPressNative("10"); // Enter
selenium.keyReleaseNative("10"); // Enter
I've ended the sequqnce with an 'Enter' character. Sometimes this doesn't work so you may need to click the button (if you know the element locator for it).