http://qs321.pair.com?node_id=705150


in reply to Handling Save Dialog Box

Monkster,

I'm having trouble understanding your question. Which program are you trying to automate? Is this a webbrowser? Or a Perl/TK program or somesuch? Please elaborate, and, if applicable, show the code you've written so far.

Replies are listed 'Best First'.
Re^2: Handling Save Dialog Box
by monkster (Sexton) on Aug 19, 2008 at 09:24 UTC
    This is a sample code of what I am attempting.
    me::HiRes qw(sleep); use Test::WWW::Selenium; use Test::More "no_plan"; use Test::Exception; my $sel = Test::WWW::Selenium->new( host => "localhost", port => 4444, browser => "*chrome", browser_url => "http://download.co +m/" ); $sel->open_ok("/2000-2001_4-0.html"); $sel->click_ok("link=AVG Anti-Virus Free Edition"); $sel->wait_for_page_to_load_ok("30000"); $sel->click_ok("link=Download Now"); $sel->wait_for_page_to_load_ok("30000");
    After I click 'Download Now', a dialog box pops-up asking me the location where I need to save the file (.exe in the above example). Could you please tell me if I can give the location also through script itself so as to eliminate user interaction..
      Could you please tell me if I can give the location also through script itself so as to eliminate user interaction..

      Why not check http://selenium-rc.openqa.org/?

      See I can't interact with a popup dialog. My test stops in its tracks!

      You can, but only if the dialog is an alert or confirmation dialog. Other special dialogs can't be dismissed by javascript, and thus currently cannot be interacted with. These include the "Save File", "Remember this Password" (Firefox), and modal (IE) dialogs. When they appear, Selenium can only wring its hands in despair.
      monkster:

      If you can't talk to the dialog box using normal methods, you might be able to send a list of keypress events to the application to set the filename and press the OK button. ...just a thought...

      ...roboticus
Re^2: Handling Save Dialog Box
by monkster (Sexton) on Aug 19, 2008 at 09:14 UTC
    I am trying to automate a web browser. I am using WWW::Selenium to do this..
      I must confess I am not too familiar with WWW::Selenium.

      If there is no way to gain control over the dialog window, you seem out of luck.

      Perhaps then a different approach would be to have another routine save the file you want by analyzing the page html? Perhaps also looking at WWW::Mechanize would be an option.

      Good luck!

        Well, the presence of javascripts makes life difficult when using WWW::Mechanize. That is why I am looking into WWW::Selenium now.. Anyways, thanks.. :)