Outdated egg!

This is an egg for CHICKEN 4, the unsupported old release. You're almost certainly looking for the CHICKEN 5 version of this egg, if it exists.

If it does not exist, there may be equivalent functionality provided by another egg; have a look at the egg index. Otherwise, please consider porting this egg to the current version of CHICKEN.

selenium

  1. Outdated egg!
  2. selenium
    1. Introduction
    2. Author
    3. Repository
    4. API
      1. Session
        1. quit!
        2. capabilities
        3. set-implicit-wait-time!
      2. Javascript
        1. execute-javascript
        2. execute-javascript-async
        3. javascript-dialog-text
        4. set-javascript-dialog-text!
        5. dismiss-javascript-dialog!
        6. accept-javascript-dialog!
      3. URLs
        1. set-url!
        2. current-url
      4. Navigation
        1. navigate-forward!
        2. navigate-backward!
      5. IME: Input Method Editor
        1. ime-available-engines
        2. ime-active-engine
        3. ime-activated?
        4. ime-deactivate!
        5. ime-activate!
      6. Frames & windows
        1. focus-frame!
        2. focus-window!
        3. close-window!
        4. window-handle
        5. window-handles
      7. User input
        1. user-input-speed
        2. set-user-input-speed!
      8. Elements
        1. active-element
        2. get-element-by-id
        3. get-element-by-name
        4. get-element-by-class-name
        5. get-element-by-css-selector
        6. get-element-by-link-text
        7. get-element-by-partial-link-text
        8. get-element-by-tag-name
        9. get-element-by-xpath
        10. element-value
        11. element-tag-name
        12. element-text
        13. select-element!
        14. toggle-element!
        15. click-element!
        16. clear-element!
        17. hover-element!
        18. drag-element!
        19. element-enabled?
        20. element-selected?
        21. element-displayed?
        22. element-location
        23. element-location-in-view
        24. element-size
        25. element-css-property-value
        26. set-element-value!
        27. active-element-send-modifier!
        28. element-attribute-value
        29. same-element?
        30. get-elements-by-class-name
        31. get-elements-by-css-selector
        32. get-elements-by-id
        33. get-elements-by-name
        34. get-elements-by-link-text
        35. get-elements-by-partial-link-text
        36. get-elements-by-tag-name
        37. get-elements-by-xpath
      9. Cookies
        1. get-cookies
        2. set-cookie!
        3. get-cookies-by-name
        4. get-cookies-by-value
        5. get-cookies-by-domain
        6. get-cookies-by-path
        7. cookie-name
        8. cookie-value
        9. cookie-path
        10. cookie-domain
        11. cookie-secure?
        12. cookie-expiry
      10. Pages
        1. page-source
        2. page-title
        3. refresh-page!
      11. Screen
        1. screen-orientation
        2. screenshot
      12. Mouse actions
        1. move-mouse-cursor-to!
        2. click-mouse-button!
        3. mouse-button-down!
        4. mouse-button-up!
        5. double-click-mouse-button!
      13. Firefox webdriver
        1. with-firefox-webdriver
      14. "Remote" webdriver
        1. with-remote-webdriver
    5. License
    6. Version history
      1. Version 0.6
      2. Version 0.5
      3. Version v0.4
      4. Version 0.3
      5. Version 0.2
      6. Version 0.1

Introduction

Chicken bindings for Selenium (http://code.google.com/p/selenium)

Very early stages. Implements the JSON Wire Protocol (http://code.google.com/p/selenium/wiki/JsonWireProtocol) and the remote and Firefox webdrivers.

Currently the Firefox webdriver requires a profile directory. You can get the data I'm using for the profile at http://parenteses.org/mario/misc/profile.tar.bz2. Extract this archive and give its full path to with-firefox-webdriver (see the tests/firefox.scm file for usage example).

Warning: since these bindings are in very early development stage, the API is subject to change.

Author

Mario Domenech Goulart

Repository

https://github.com/mario-goulart/selenium

API

Session

quit!
[procedure] (quit!)
capabilities
[procedure] (capabilities)
set-implicit-wait-time!
[procedure] (set-implicit-wait-time! time-ms)

Javascript

execute-javascript
[procedure] (execute-javascript script args)
execute-javascript-async
[procedure] (execute-javascript-async script args)
javascript-dialog-text
[procedure] (javascript-dialog-text)
set-javascript-dialog-text!
[procedure] (set-javascript-dialog-text! text)
dismiss-javascript-dialog!
[procedure] (dismiss-javascript-dialog!)
accept-javascript-dialog!
[procedure] (accept-javascript-dialog!)

URLs

set-url!
[procedure] (set-url! url)
current-url
[procedure] (current-url)
[procedure] (navigate-forward!)
[procedure] (navigate-backward!)

IME: Input Method Editor

ime-available-engines
[procedure] (ime-available-engines)
ime-active-engine
[procedure] (ime-active-engine)
ime-activated?
[procedure] (ime-activated?)
ime-deactivate!
[procedure] (ime-deactivate!)
ime-activate!
[procedure] (ime-activate!)

Frames & windows

focus-frame!
[procedure] (focus-frame! id)
focus-window!
[procedure] (focus-window! id)
close-window!
[procedure] (close-window! id)
window-handle
[procedure] (window-handle)
window-handles
[procedure] (window-handles)

User input

user-input-speed
[procedure] (user-input-speed)
set-user-input-speed!
[procedure] (set-user-input-speed! speed)

Elements

active-element
[procedure] (active-element)
get-element-by-id
[procedure] (get-element-by-id id)
get-element-by-name
[procedure] (get-element-by-name name)
get-element-by-class-name
[procedure] (get-element-by-class-name class-name)
get-element-by-css-selector
[procedure] (get-element-by-css-selector css-selector)
[procedure] (get-element-by-link-text link-text)
[procedure] (get-element-by-partial-link-text partial-link-text)
get-element-by-tag-name
[procedure] (get-element-by-tag-name tag-name)
get-element-by-xpath
[procedure] (get-element-by-xpath xpath)
element-value
[procedure] (element-value element)
element-tag-name
[procedure] (element-tag-name element)
element-text
[procedure] (element-text element)
select-element!
[procedure] (select-element! element)
toggle-element!
[procedure] (toggle-element! element)
click-element!
[procedure] (click-element! element)
clear-element!
[procedure] (clear-element! element)
hover-element!
[procedure] (hover-element! element)
drag-element!
[procedure] (drag-element! element)
element-enabled?
[procedure] (element-enabled? element)
element-selected?
[procedure] (element-selected? element)
element-displayed?
[procedure] (element-displayed? element)
element-location
[procedure] (element-location element)
element-location-in-view
[procedure] (element-location-in-view element)
element-size
[procedure] (element-size element)
element-css-property-value
[procedure] (element-css-property-value element)
set-element-value!
[procedure] (set-element-value! element value)
active-element-send-modifier!
[procedure] (active-element-send-modifier! key down?)
element-attribute-value
[procedure] (element-attribute-value element attribute)
same-element?
[procedure] (same-element? element1 element2)
get-elements-by-class-name
[procedure] (get-elements-by-class-name class-name)
get-elements-by-css-selector
[procedure] (get-elements-by-css-selector css-selector)
get-elements-by-id
[procedure] (get-elements-by-id id)
get-elements-by-name
[procedure] (get-elements-by-name name)
[procedure] (get-elements-by-link-text link-text)
[procedure] (get-elements-by-partial-link-text partial-link-text)
get-elements-by-tag-name
[procedure] (get-elements-by-tag-name tag-name)
get-elements-by-xpath
[procedure] (get-elements-by-xpath xpath)

Cookies

get-cookies
[procedure] (get-cookies)
[procedure] (set-cookie! name value #!key path domain secure? expiry)
get-cookies-by-name
[procedure] (get-cookies-by-name name/regex)
get-cookies-by-value
[procedure] (get-cookies-by-value value/regex)
get-cookies-by-domain
[procedure] (get-cookies-by-domain domain/regex)
get-cookies-by-path
[procedure] (get-cookies-by-path path/regex)
[procedure] (cookie-name cookie)
[procedure] (cookie-value cookie)
[procedure] (cookie-path cookie)
[procedure] (cookie-domain domain)
[procedure] (cookie-secure? cookie)
[procedure] (cookie-expiry cookie)

Pages

page-source
[procedure] (page-source)
page-title
[procedure] (page-title)
refresh-page!
[procedure] (refresh-page!)

Screen

screen-orientation
[procedure] (screen-orientation)
screenshot
[procedure] (screenshot)

Mouse actions

move-mouse-cursor-to!
[procedure] (move-mouse-cursor-to! #!optional x y element)
click-mouse-button!
[procedure] (click-mouse-button! #!optional button)
mouse-button-down!
[procedure] (mouse-button-down!)
mouse-button-up!
[procedure] (mouse-button-up!)
double-click-mouse-button!
[procedure] (double-click-mouse-button!)

Firefox webdriver

with-firefox-webdriver
[procedure] (with-firefox-webdriver profile-dir thunk #!key (scheme 'http) (host "127.0.0.1") (port 7055) (path "/hub") (command "firefox") (capabilities '((browserName . "firefox") (javascriptEnabled . #t) (platform . "ANY"))))

"Remote" webdriver

with-remote-webdriver
[procedure] (with-remote-webdriver jar-file thunk #!key (scheme 'http) (host "127.0.0.1") (port 4444) (path "/wd/hub") (command "java -jar") (capabilities '()))

License

BSD

Version history

Version 0.6

Category changed from web to testing

Version 0.5

Meta file fix (added category section)

Version v0.4

Fixed versions in release-info file

Version 0.3

Minor fixes: fixed version declaration in .setup. Unexported desired-capabilities, command-executor-host, command-executor-port and command-executor-path.

Version 0.2

Added release-info file

Version 0.1

Initial release