Skip to content
This repository was archived by the owner on Apr 22, 2025. It is now read-only.
jarib edited this page Aug 14, 2010 · 22 revisions

How do I turn off logging? It’s killing me!

Either instantiate the Browser with

browser = Celerity::Browser.new(:log_level => :off)

or set it later

browser.log_level = :off

See also the full list of supported options.

Finding elements by :index is not doing what I expect.

To stay compatible with Watir, locating elements by :index or fetching elements from ElementCollection subclasses is 1-indexed.
To change this to zero-index, versions >= 0.0.6.10 lets you set

Celerity.index_offset = 0

How can I find elements that use non-ASCII characters?

Celerity encodes all strings as UTF-8, so if you save your test scripts as UTF-8 everything should work fine.
To make Watir use UTF-8, add this line to your test suite (WTR-219):

WIN32OLE.codepage = WIN32OLE::CP_UTF8 

Can I watch my tests execute?

See Viewers.

How do I deal with pages that make Ajax calls?

See Ajax.

How do I deal with popups?

Use ClickableElement#click_and_attach. This method returns a new browser instance with the page returned when clicking the element.

Example:

popup_browser = browser.link(:id, 'popup').click_and_attach
# do something with popup_browser
popup_browser.close
# continue working with browser

How do I deal with JavaScript dialogs or alerts?

HtmlUnit provides a listener interface for alert() and confirm() calls.
To access this with Celerity, you can use:

browser.add_listener(:alert) { |page, message| ... }
browser.add_listener(:confirm) { |page, message| ... }

If the value returned from the :confirm block is false, the “Cancel” button will be clicked.
You can also use Browser#confirm for easier interaction:

browser.confirm(false) do
   # trigger confirm() call 
end

How do I download files?

If you have a link or button that returns a document you normally wouldn’t view in a browser, you can use ClickableElement#download to get an IO object instead.

browser.link(:id, 'pdf').download #=> #<IO:0x11ce78c>

Troubleshooting

Celerity doesn’t work with Test::Unit’s autorun

This is caused by a JRuby bug in versions pre-1.2.
Update to JRuby >= 1.2 to get rid of this problem.

I’m getting an error from DRb

This is caused by a JRuby bug, and only appears when running off jruby-complete.jar on Celerity version <= 0.0.6.15. Until the bug is fixed, you can solve the problem by doing a proper install of JRuby, updating Celerity or adding this:

require "thread.rb"
Clone this wiki locally