Solved

Ask to my C# application to wait until an action is taken on a Javascript Alert using mshtml

Posted on 2008-10-23
3
901 Views
Last Modified: 2013-12-17
Hi I am bulding an application that opens an IE browser and fill fields out automaticaly using Microsoft.mshtml but when it comes to click on the Next button an Javascript alert open confirming the adress with a yes/no.

How to, I either tell the application to click Yes automaticaly then wait the action to click on the Next button again

My main issue is to wait till the user click yes on the alert windows then tell the application to click on the next button again.

If you could fix both of my problem, it would be awsome.

any ideas??

Thanks

Here is my code snippet:
Object o = null;

            Object URL = "https://eshiponline.purolator.com/ShipOnline/SecurePages/Public/FormsLogin.aspx";

            mshtml.HTMLDocumentClass doc;
 

            InternetExplorer ie = new InternetExplorer();

            ie.Visible = true;

            ie.Navigate2(ref URL, ref o, ref o, ref o, ref o);
 

            while (ie.ReadyState != SHDocVw.tagREADYSTATE.READYSTATE_COMPLETE)

            {

                Application.DoEvents();

                System.Threading.Thread.Sleep(50);

            }
 

            // get the document

            doc = (mshtml.HTMLDocumentClass)ie.Document;
 

            mshtml.HTMLInputElementClass el = null;
 

            // Login

            ieValue("ctl00$CPPC$Username", "username", el, doc); //

            ieValue("ctl00$CPPC$Password", "password", el, doc); //

            ieClick("ctl00$CPPC$imgLogin", el, doc); //         
 

                // Check if shipTo Canada, Else fill field, show Browser

                if (d1_ctl00_CPPC_ctrlShipToAddress_ddlCountry.Text == "Canada")

                {

                    // Filling text box from the first page.

                    fillTextBox("p1_", el, doc);
 

                    // Wait If Have to change Shipped From

                    if (ch_fromDefault.Checked != true)

                    {

                        ieClick("ctl00$CPPC$btnNext", el, doc); //
 

//this is at this point that the alert appear. After clicking yes. I need to call ieClick("ctl00$CPPC$btnNext", el, doc); // again
 

                    }

                    else

                    {

                        ie.Visible = true;

                        ieJavascript("ctrlShipFromAddress_Edit();", el, ie);

                    }

                    

                }

                else

                {

                    fillTextBox("p1_", el, doc);

                    Application.Exit();

                    return;

                }

Open in new window

0
Comment
Question by:maxleb
3 Comments
 
LVL 2

Accepted Solution

by:
AshleighGreen earned 500 total points
Comment Utility
Hello,

Get the user to confirm (Yes/No) with a confirmation box.

i.e.
var answer = confirm("Do you want to click next?"

you can then use answer:
i.e.
if(answer)
{
  //click button that causes page load
  document.getElementById('btnNext').click();
}

That way the action only happens if the user clicks ok in the confirmation box.

I know what I've written is in javascript, but it should be pretty easy to convert to mshtml if required. You could also leave it as JS and make it a function you call from mshtml. Plenty of options, but that's the general technique I'd recommend using to trigger .net actions such as confirmation boxes from javascript.
0

Featured Post

Do You Know the 4 Main Threat Actor Types?

Do you know the main threat actor types? Most attackers fall into one of four categories, each with their own favored tactics, techniques, and procedures.

Join & Write a Comment

We all know that functional code is the leg that any good program stands on when it comes right down to it, however, if your program lacks a good user interface your product may not have the appeal needed to keep your customers happy. This issue can…
Introduction Hi all and welcome to my first article on Experts Exchange. A while ago, someone asked me if i could do some tutorials on object oriented programming. I decided to do them on C#. Now you may ask me, why's that? Well, one of the re…
In this seventh video of the Xpdf series, we discuss and demonstrate the PDFfonts utility, which lists all the fonts used in a PDF file. It does this via a command line interface, making it suitable for use in programs, scripts, batch files — any pl…
This tutorial demonstrates a quick way of adding group price to multiple Magento products.

763 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

9 Experts available now in Live!

Get 1:1 Help Now