# Click a javascript dialog window in Firefox

**URL:** <https://www.ruby-forum.com/t/click-a-javascript-dialog-window-in-firefox/191576>\
**Category:** Ruby\
**Created:** [July 14, 2010, 6:38pm UTC](https://www.ruby-forum.com/t/click-a-javascript-dialog-window-in-firefox/191576 "2010-07-14T18:38:54Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![tcblues](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/db5fbb/32.png) [@tcblues](https://www.ruby-forum.com/u/tcblues)\
**Post date:** [July 14, 2010, 6:38pm UTC](https://www.ruby-forum.com/t/click-a-javascript-dialog-window-in-firefox/191576/1 "2010-07-14T18:38:54Z")

</div>

Hi,  
I’m trying to click a dialog box in Firefox but all the code I found is  
not working.  
I have watir and firewatir 1.6.5

Thanks

---

<div class="post-metadata">

**Author:** ![tcblues](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/db5fbb/32.png) [@tcblues](https://www.ruby-forum.com/u/tcblues)\
**Post date:** [July 20, 2010, 1:29pm UTC](https://www.ruby-forum.com/t/click-a-javascript-dialog-window-in-firefox/191576/2 "2010-07-20T13:29:43Z")

</div>

On Wed, Jul 14, 2010 at 6:39 PM, Mario R. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> Hi,  
> I’m trying to click a dialog box in Firefox but all the code I found is  
> not working.  
> I have watir and firewatir 1.6.5

Firewatir::Firefox has a method startClicker that does that:

$ ri startClicker

## ---------------------------------------- FireWatir::Firefox#startClicker startClicker(button, waitTime = 1, userInput = nil, text = nil)

```
 Description:

   Tells FireWatir to click javascript button in case one comes

```

after performing some action on an element. Matches  
text of pop up with one if supplied as parameter. If text  
matches clicks the button else stop script execution until  
pop up is dismissed by manual intervention.

```
 Input:

   button - JavaScript button to be clicked. Values can be OK 

```

or Cancel  
waitTime - Time to wait for pop up to come. Not used just  
for compatibility with Watir.  
userInput - Not used just for compatibility with Watir  
text - Text that should appear on pop up.

What this really does underneath is to change the window.alert method  
for one that returns what you tell it to. It doesn’t really open a  
window anymore.

I’ve used this successfully once.

Hope this helps,

Jesus.

---

<div class="post-metadata">

**Author:** ![tcblues](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/db5fbb/32.png) [@tcblues](https://www.ruby-forum.com/u/tcblues)\
**Post date:** [August 13, 2010, 1:53pm UTC](https://www.ruby-forum.com/t/click-a-javascript-dialog-window-in-firefox/191576/3 "2010-08-13T13:53:23Z")

</div>

But the thing is… if you click first… ff keeps waiting and doesn’t  
return the control to ruby so in theory the only way to do it is call  
startClicker first and then click the button… but it’s not working  
properly since what it is doing is just closing the JS window but not  
clicking on the button as you can see in this example:

require “firewatir”  
$ff = FireWatir::Firefox.new() #create an object to drive the browser  
$ff.goto(“[http://w3schools.com/js/tryit\_view.asp?filename=tryjs\_confirm](http://w3schools.com/js/tryit_view.asp?filename=tryjs_confirm)”)  
$ff.startClicker( “OK”, 4)  
$ff.button(:value,“Show a confirm box”).click  
sleep 3  
$ff.close()

---

<div class="post-metadata">

**Author:** ![tcblues](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/db5fbb/32.png) [@tcblues](https://www.ruby-forum.com/u/tcblues)\
**Post date:** [August 13, 2010, 2:04pm UTC](https://www.ruby-forum.com/t/click-a-javascript-dialog-window-in-firefox/191576/4 "2010-08-13T14:04:09Z")

</div>

On Fri, Aug 13, 2010 at 1:53 PM, Mario R. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> $ff.startClicker( “OK”, 4)  
> $ff.button(:value,“Show a confirm box”).click  
> sleep 3  
> $ff.close()

I don’t know if you have other example that does something in the page  
when OK is clicked.  
What startClicker does, is to override the window.alert function with  
a function that returns OK, so really no popup is open at all.

Jesus.

---

<div class="post-metadata">

**Author:** ![tcblues](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/db5fbb/32.png) [@tcblues](https://www.ruby-forum.com/u/tcblues)\
**Post date:** [August 13, 2010, 2:07pm UTC](https://www.ruby-forum.com/t/click-a-javascript-dialog-window-in-firefox/191576/5 "2010-08-13T14:07:30Z")

</div>

So there is no way to click the buttons on a javascript window

---

<div class="post-metadata">

**Author:** ![tcblues](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/db5fbb/32.png) [@tcblues](https://www.ruby-forum.com/u/tcblues)\
**Post date:** [August 13, 2010, 2:09pm UTC](https://www.ruby-forum.com/t/click-a-javascript-dialog-window-in-firefox/191576/6 "2010-08-13T14:09:25Z")

</div>

2010/8/13 Jesús Gabriel y Galán [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> > $ff.goto(“[http://w3schools.com/js/tryit\_view.asp?filename=tryjs\_confirm](http://w3schools.com/js/tryit_view.asp?filename=tryjs_confirm)”)  
> > $ff.startClicker( “OK”, 4)  
> > $ff.button(:value,“Show a confirm box”).click  
> > sleep 3  
> > $ff.close()
> 
> I don’t know if you have other example that does something in the page  
> when OK is clicked.  
> What startClicker does, is to override the window.alert function with  
> a function that returns OK, so really no popup is open at all.

It also does the same with the confirm button, so your example should  
work. I’ve tested it and it works (debugging with Firebug I see that  
the call r = confirm… returns true).

Jesus.

---

<div class="post-metadata">

**Author:** ![tcblues](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/db5fbb/32.png) [@tcblues](https://www.ruby-forum.com/u/tcblues)\
**Post date:** [August 13, 2010, 2:11pm UTC](https://www.ruby-forum.com/t/click-a-javascript-dialog-window-in-firefox/191576/7 "2010-08-13T14:11:11Z")

</div>

On Fri, Aug 13, 2010 at 2:07 PM, Mario R. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> So there is no way to click the buttons on a javascript window

Inside Firewatir no, but why do you really need that? Your javascript  
code will work as if the user had pressed the OK or the cancel button,  
so everything should continue executing normally.

Jesus.

---

<div class="post-metadata">

**Author:** ![tcblues](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/db5fbb/32.png) [@tcblues](https://www.ruby-forum.com/u/tcblues)\
**Post date:** [August 13, 2010, 2:14pm UTC](https://www.ruby-forum.com/t/click-a-javascript-dialog-window-in-firefox/191576/8 "2010-08-13T14:14:26Z")

</div>

Because, in some cases the page is doing different things depending what  
I’m selecting… for example, the window says: do you want to go to  
[www.google.com](http://www.google.com)? and the options: Yes, No

---

<div class="post-metadata">

**Author:** ![tcblues](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/db5fbb/32.png) [@tcblues](https://www.ruby-forum.com/u/tcblues)\
**Post date:** [August 13, 2010, 3:05pm UTC](https://www.ruby-forum.com/t/click-a-javascript-dialog-window-in-firefox/191576/9 "2010-08-13T15:05:38Z")

</div>

On Fri, Aug 13, 2010 at 2:14 PM, Mario R. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> Because, in some cases the page is doing different things depending what  
> I’m selecting… for example, the window says: do you want to go to  
> [www.google.com](http://www.google.com)? and the options: Yes, No

But then you can automate to one option or the other with  
startClicker(“OK”) or startClicker(“cancel”) (or maybe “Cancel”, I’m  
not sure)

Jesus.
