Dgameman1

Why isn't Autoit able to click a Javascript Dialog?

50 posts in this topic

I just find it weird how the Autoit script freezes whenever a Javascript dialog appears. No other programming language I know has this issue.

I've tried all these and I still can't get it to work.

This is what the AutoIt Window says

Quote

>>>> Window <<<<
Title:    Message from webpage
Class:    #32770
Position:    480, 459
Size:    380, 172
Style:    0x94C801C5
ExStyle:    0x00010101
Handle:    0x000D051E

>>>> Control <<<<
Class:    Button
Instance:    1
ClassnameNN:    Button1
Name:    
Advanced (Class):    [CLASS:Button; INSTANCE:1]
ID:    1
Text:    OK
Position:    172, 96
Size:    88, 26
ControlClick Coords:    56, 9
Style:    0x50030000
ExStyle:    0x00000004
Handle:    0x0012028E

>>>> Mouse <<<<
Position:    716, 595
Cursor ID:    0
Color:    0xECECEC

>>>> StatusBar <<<<

>>>> ToolsBar <<<<

>>>> Visible Text <<<<
OK
Cancel
Deleting these messages will also delete their
responses. Are you sure you want to delete them?


>>>> Hidden Text <<<<

 

$TrashCan is the button that is found on the IE page that triggers a javascript alert

 

_IEAction($TrashCan, "click")
ConsoleWrite("DONE")

 

Is my code, ConsoleWrite never happens until I manually click the close button

 

I've also tried this, as shown in the help docs and this time, the button isn't even pressed


 

Quote

$hwnd = _IEPropertyGet($OKCSite, "hwnd")

_ieAction($TrashCan, "focus")
ControlSend($hwnd, "", "", "{Enter}")

So I guess it's just impossible to actually have Autoit click a dialog box from Javascript, weird.

 

Share this post


Link to post
Share on other sites



#2 ·  Posted (edited)

10 minutes ago, Dgameman1 said:

No other programming language I know has this issue.

I've tried all these and I still can't get it to work.

Can you show us the code in all the other languages that worked, it will help with a solution.

Edited by JohnOne

AutoIt Absolute Beginners    Require a serial    Pause Script    Video Tutorials by Morthawt   ipify 

Monkey's are, like, natures humans.

Share this post


Link to post
Share on other sites

#3 ·  Posted (edited)

2 hours ago, JohnOne said:

Can you show us the code in all the other languages that worked, it will help with a solution.

 

No other programming language stops when a Javascript alert box runs 

Edited by Dgameman1

Share this post


Link to post
Share on other sites

This question has been asked and answered countless times...forum search: deadlock


IEbyXPATH-Grab IE DOM objects by XPATH IEscriptRecord-Makings of an IE script recorder ExcelFromXML-Create Excel docs without excel installed GetAllWindowControls-Output all control data on a given window.

Share this post


Link to post
Share on other sites
3 minutes ago, jdelaney said:

This question has been asked and answered countless times...forum search: deadlock

Right, I have. I'm not able to find anything that would help me, and I feel like I've tried many of those suggestions already.

Share this post


Link to post
Share on other sites

You need a seond script or AdLibRegister.

Share this post


Link to post
Share on other sites

#7 ·  Posted (edited)

30 minutes ago, AutoBert said:

You need a seond script or AdLibRegister.

I'm currently running the second script to do this, but is there no way of including this inside the same script without having AdlibRegister just randomly run it every X amount of seconds?

I also tried AdLibRegister, and it didn't work, but a second script does.

Also, when I run IE in hidden mode, the Javascript Dialog shows. Is there a way to stop that?

Edited by Dgameman1

Share this post


Link to post
Share on other sites

Disable JavaScript in your IE.

Share this post


Link to post
Share on other sites
1 minute ago, AutoBert said:

Disable JavaScript in your IE.

Right. So the rest of the website fails to work. +1

Share this post


Link to post
Share on other sites
1 minute ago, AutoBert said:

Disable JavaScript in your IE.

Right. So the rest of the website fails to work. +1

Share this post


Link to post
Share on other sites
Just now, Dgameman1 said:

I'm currently running the second script to do this, but is there no way of including this inside the same script without having AdlibRegister just randomly run it every X amount of seconds?

This is exactly What AdlibRegister doing.

I also tried AdLibRegister, and it didn't work, but a second script does.

Add one MsgBox to AdLibRegistered function.
If it PopUp this MsgBox ?

Also, when I run IE in hidden mode, the Javascript Dialog shows. Is there a way to stop that?

Ask dev .... webdev :)

 

 


Signature beginning:   Wondering who uses AutoIT and what it can be used for ?
* GHAPI UDF - modest begining - comunication with GitHub REST API *
ADO.au3 UDF     POP3.au3 UDF     XML.au3 UDF    How to use IE.au3  UDF with  AutoIt v3.3.14.x  for other useful stuff click the following button

Spoiler

Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind. 

My contribution (my own projects): * Debenu Quick PDF Library - UDF * Debenu PDF Viewer SDK - UDF * Acrobat Reader - ActiveX Viewer * UDF for PDFCreator v1.x.x * XZip - UDF * AppCompatFlags UDF * CrowdinAPI UDF * _WinMergeCompare2Files() * _JavaExceptionAdd() * _IsBeta() * Writing DPI Awareness App - workaround * _AutoIt_RequiredVersion() * Chilkatsoft.au3 UDF * TeamViewer.au3 UDF * JavaManagement UDF * VIES over SOAP * WinSCP UDF * GHAPI UDF - modest begining - comunication with GitHub REST API *

My contribution to others projects or UDF based on  others projects: * _sql.au3 UDF  * POP3.au3 UDF *  RTF Printer - UDF * XML.au3 - BETA * ADO.au3 UDF SMTP Mailer UDF *

Useful links: * Forum Rules * Forum etiquette *  Forum Information and FAQs * How to post code on the forum * AutoIt Online Documentation * AutoIt Online Beta Documentation * SciTE4AutoIt3 getting started * Convert text blocks to AutoIt code * Games made in Autoit * Programming related sites * Polish AutoIt Tutorial * DllCall Code Generator * 

Wiki: Expand your knowledge - AutoIt Wiki * Collection of User Defined Functions * How to use HelpFile * Best coding practices * 

IE Related:  * How to use IE.au3  UDF with  AutoIt v3.3.14.x * Why isn't Autoit able to click a Javascript Dialog? * Clicking javascript button with no ID * IE document >> save as MHT file * IETab Switcher (by LarsJ ) * HTML Entities * _IEquerySelectorAll() (by uncommon) * 

I encourage you to read: * Global Vars * Best Coding Practices * Please explain code used in Help file for several File functions * OOP-like approach in AutoIt * UDF-Spec Questions *  EXAMPLE: How To Catch ConsoleWrite() output to a file or to CMD *

"Homo sum; humani nil a me alienum puto" - Publius Terentius Afer
"Program are meant to be read by humans and only incidentally for computers and execute" - Donald Knuth, "The Art of Computer Programming"
:naughty:  :ranting:, be  :) and       \\//_.

Anticipating Errors :  "Any program that accepts data from a user must include code to validate that data before sending it to the data store. You cannot rely on the data store, ...., or even your programming language to notify you of problems. You must check every byte entered by your users, making sure that data is the correct type for its field and that required fields are not empty."

Signature last update: 2017-06-04

Share this post


Link to post
Share on other sites
3 minutes ago, mLipok said:

This is exactly What AdlibRegister doing.

Add one MsgBox to AdLibRegistered function.
If it PopUp this MsgBox ?

Ask dev .... webdev :)

 

 

I know AdlibRegistered is working because I put a MSGBOX in there and it appeared every 1 second.

I was running two scripts and it worked, the second script is to just click the ok button on the dialog. Here is the code

If WinExists("Message from webpage") Then
        $WinText = WinGetText("Message from webpage")
        If StringInStr($WinText, "Are you sure you want to delete them?") Then
            ControlClick("Message from webpage", "", "[CLASS:Button; INSTANCE:1]")
        EndIf
    EndIf

I went ahead and put it inside a function and called it with adlibregister and it doesn't work anymore

 

Share this post


Link to post
Share on other sites

#14 ·  Posted (edited)

19 hours ago, Dgameman1 said:

Right, I have. I'm not able to find anything that would help me, and I feel like I've tried many of those suggestions already.

"I've tried many of those suggestions"...which suggestion, exactly, have you tried.

Edited by jdelaney

IEbyXPATH-Grab IE DOM objects by XPATH IEscriptRecord-Makings of an IE script recorder ExcelFromXML-Create Excel docs without excel installed GetAllWindowControls-Output all control data on a given window.

Share this post


Link to post
Share on other sites
20 hours ago, JohnOne said:

what is the page url?

It doesn't matter what page URL. Any page that has autoit click the javascript

8 hours ago, jdelaney said:

"I've tried many of those suggestions"...which suggestion, exactly, have you tried.

  1. AdlibRegister
  2. Example 2 under _IEAction in the Help file
  3. Second script
  4. Use Winactivate on IE and then the Dialog box.

The only thing that has worked is using a second script, which I don't want to do.

Share this post


Link to post
Share on other sites
On 3/16/2016 at 2:29 AM, Dgameman1 said:

No other programming language stops when a Javascript alert box runs 

Show the code, for just one, that doesn't .

Should not be hard, since...

On 3/16/2016 at 0:21 AM, Dgameman1 said:

No other programming language I know has this issue.

You obviously tried them all.


AutoIt Absolute Beginners    Require a serial    Pause Script    Video Tutorials by Morthawt   ipify 

Monkey's are, like, natures humans.

Share this post


Link to post
Share on other sites
1 minute ago, JohnOne said:

Show the code, for just one, that doesn't .

Should not be hard, since...

You obviously tried them all.

I don't understand why you're being so difficult. I'm not great at programming, but I know that c# and c++ don't just stop working when they're coded to click a button on a website and a javascript alert dialog opens up.

What I'm saying isn't very hard to understand.

And no where did I say I tried them all, you even quoted me and still failed to understand what I said, which was No other programming language I know has this issue. No where does that mean I know and have tried every single programming language.

So instead of arguing with me publicly, feel free to PM me or stop distracting from this thread.

Share this post


Link to post
Share on other sites

I'm not trying to be difficult, I'm trying to establish some things, to help you (and me) learn something to get further.

So please just humour me, and demonstrate just exactly how you determined that no other language has this issue, if you atre just guessing and making it up, that's fine too, but a simple answer will go a long way to helping your cause.


AutoIt Absolute Beginners    Require a serial    Pause Script    Video Tutorials by Morthawt   ipify 

Monkey's are, like, natures humans.

Share this post


Link to post
Share on other sites

And it's not a big deal that you don't know how to code in other programming languages. That's not the issue, but you asking me to code a program in a different programming language just to prove it to you that I'm not lying about my issue is ridiculous.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now