Jump to content

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


Recommended Posts

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.

 

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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
Link to comment
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.

Link to comment
Share on other sites

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
Link to comment
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:
Please remember: "AutoIt"..... *  Wondering who uses AutoIt and what it can be used for ? * Forum Rules *
ADO.au3 UDF * POP3.au3 UDF * XML.au3 UDF * IE on Windows 11 * How to ask ChatGPT for AutoIt Codefor 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 APIErrorLog.au3 UDF - A logging Library * Include Dependency Tree (Tool for analyzing script relations) * Show_Macro_Values.au3 *

 

My contribution to others projects or UDF based on  others projects: * _sql.au3 UDF  * POP3.au3 UDF *  RTF Printer - UDF * XML.au3 UDF * ADO.au3 UDF SMTP Mailer UDF * Dual Monitor resolution detection * * 2GUI on Dual Monitor System * _SciLexer.au3 UDF * SciTE - Lexer for console pane

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 * Good coding practices in AutoIt * 

OpenOffice/LibreOffice/XLS Related: WriterDemo.au3 * XLS/MDB from scratch with ADOX

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) * IE in TaskSchedulerIE Embedded Control Versioning (use IE9+ and HTML5 in a GUI) * PDF Related:How to get reference to PDF object embeded in IE * IE on Windows 11

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 *

I also encourage you to check awesome @trancexx code:  * Create COM objects from modules without any demand on user to register anything. * Another COM object registering stuffOnHungApp handlerAvoid "AutoIt Error" message box in unknown errors  * HTML editor

winhttp.au3 related : * https://www.autoitscript.com/forum/topic/206771-winhttpau3-download-problem-youre-speaking-plain-http-to-an-ssl-enabled-server-port/

"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: 2023-04-24

Link to comment
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

 

Link to comment
Share on other sites

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.
Link to comment
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.

Link to comment
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.

Link to comment
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.

Link to comment
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.

Link to comment
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
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...