I am automating test for a website using selenium, but selenium is not able to identify SWF components. Please let me know if there's a way to automate SWF components with Selenium & perl.
Here's the test link to check proof of concept:
http://demo.swfupload.org/v220/simpledemo/index.php
There is a Selenium-Flex API. I believe it requires instrumenting your swf files so that their controls are actually called by JavaScript, but includes a tool for doing that instrumentation.
I have not tried this, but might when I have some time...
EDIT:
Just noticed you referenced it not working for you in comments already. If you need to call it from perl it may indeed be impossible. I'd have to be a real user of it to know.
I encountered the same problem in automating a flash uploader widget in my own tests. Unfortunately, selenium cannot be used to automate run-of-the-mill flash SWF files.
If you want to upload something, then throw a script up on your server to which you can POST file data, and POST the data directly from your script (I am assuming that you are running selenium-rc). In any case, this is just working around the flash widget.
Related
I have here this website:https://www.connect2nse.com/iislNet/UserFolder.jsp
Firstly i tried using WWW::Mechanize, but it doesn't seem to work. WWW::Mechanize doesn't work with JSP written website. So I researched about how to download a file in a website written in JSP, but can't find a good one. Can anybody help me with this one? Thanks in advance.
As far as the client is concerned, JavaServer Pages is identical to PHP, Perl, or even static HTML files. The result is a page of HTML that can be rendered and displayed, and the source of the data isn't the reason for WWW::Mechanize failing to do what you want
Doesn't work is useless as a problem description, and the issue could be pretty much anything. However, if the HTML is associated with some JavaScript (which is executed on the client system after the page has been retrieved and not on the server) then it may be more or less handicapped because WWW::Mechanize doesn't support JavaScript. For that you will need to use WWW::Mechanize::Firefox or similar, which works by using a real instance of Firefox to render the HTML and execute any JavaScript
I am using Sahi to automate some of my test cases. Sahi is recording lot of websites except my test website. It's not recording anything on my website.. Any suggestions or work around?
I think an url to your site can be nice because the problem can be a lot of things.
For exemple, if you use flex instead of HTML, you should compile your flex application with Sahi's swc file. A flex application needs to be compiled with Sahi's swc file if your want to use Sahi on it.
All informations here :
https://sahipro.com/docs/using-sahi/flex.html#Introduction
I am currently creating a form that involves a file uploader. Currently
my form is fine just using multipart and post but later on in future iterations
it will be necessary for the form to be posted with ajax in order to edit the
image before submitting the form.
I have seen a lot of things about multiple files like jquery-file-upload and swf
and php with uploadify and a whole host of non IE 7+ solutions. However those are
not going to work for this specific project and I am really just looking for the bare
bones nothing fancy to have to deal with just sends the image data to an endpoint.
What is the best way to do this in a way that can support all browsers.
=====EDIT=====
I havent tested this completely yet but this solution seems good to me
https://github.com/francois2metz/html5-formdata
Fine Uploader is a library that provides the ability to support cross-browser uploading. Ajax/xhr post requests are used for all browsers that support the file api. Otherwise, a form-based upload method is used. No flash is used or needed. This is all transparent to the user. Check out fineuploader.com for more details.
You can't send file through AJAX request this is just impossible. If you use HTML5 File API that would work but as you stated in your question you need to support old browsers. So I think you either have to use flash (uploadify uses flash as well) or you don't have any other option.
You can have a look at this question/answer:
jQuery Ajax File Upload
Im trying to download a file with perl's WWW::Selenium. I get a popup box asking me if I want to save/open the file. I want to manipulate it and say 'save' at some given location. Im not sure how this can be done. Please help.
P.S: I could not use WWW::Mechanize for this page and I have to use Selenium
Thanks a lot!
Selenium cannot handle the save box but a third party utility, AutoIt, can. What we do is have our testing code use selenium commands to click the download link, and then execute a compiled AutoIt script to save the file to the disk.
My understanding is that with selenium 1.x it can't be done, and has yet to be implemented in selenium 2 yet.
See,
http://www.jsystemtest.org/?q=node/70
and
http://wiki.openqa.org/display/SEL/Selenium+Core+FAQ#SeleniumCoreFAQ-Ican%27tinteractwithapopupdialog.Myteststopsinitstracks%21
If there's a way for the client side GWT code to pre-process a file on the client computer?
For example, to calculate a checksum of it before submitting the file to the server.
No it is not possible. The manipulation of the file is done by the browser, not the HTML code.
Think about it, GWT is 100% javascript. And javascript has no access whatsoever of the file in your computer. That would be an pretty big security risk! GWT "wraps" the file input box so it can be displayed inside the GWT panel. But once you press the "upload" button, the upload is done by the browser.
You could do file manipulation with another technology however. Java applets for example. But that is outside of GWT area...
Using GWT, there is no way to read files on the client side yet. However, in HTML5, you can read files without uploading to a server using the "File API".
Links are provided below.
File API tutorial on html5rocks.com
Example of how to use File API in GWT via JSNI
I'm pretty sure that because GWT code compiles to pure JavaScript, there isn't a way without requiring some third-party browser plugin.
Do you mean from an <input type="file"...> file upload field in a form?
The short answer is no-- file uploads are handled by the browser, and are sent directly to the server (as an ENCODING_MULTIPART POST). And security restrictions on JavaScript mean there's no way to workaround that restriction.