chickadee » selenium

selenium

TOC »

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!
quit!procedure
capabilities
capabilitiesprocedure
set-implicit-wait-time!
set-implicit-wait-time! time-msprocedure

Javascript

execute-javascript
execute-javascript script argsprocedure
execute-javascript-async
execute-javascript-async script argsprocedure
javascript-dialog-text
javascript-dialog-textprocedure
set-javascript-dialog-text!
set-javascript-dialog-text! textprocedure
dismiss-javascript-dialog!
dismiss-javascript-dialog!procedure
accept-javascript-dialog!
accept-javascript-dialog!procedure

URLs

set-url!
set-url! urlprocedure
current-url
current-urlprocedure

Navigation

navigate-forward!
navigate-forward!procedure
navigate-backward!
navigate-backward!procedure

IME: Input Method Editor

ime-available-engines
ime-available-enginesprocedure
ime-active-engine
ime-active-engineprocedure
ime-activated?
ime-activated?procedure
ime-deactivate!
ime-deactivate!procedure
ime-activate!
ime-activate!procedure

Frames & windows

focus-frame!
focus-frame! idprocedure
focus-window!
focus-window! idprocedure
close-window!
close-window! idprocedure
window-handle
window-handleprocedure
window-handles
window-handlesprocedure

User input

user-input-speed
user-input-speedprocedure
set-user-input-speed!
set-user-input-speed! speedprocedure

Elements

active-element
active-elementprocedure
get-element-by-id
get-element-by-id idprocedure
get-element-by-name
get-element-by-name nameprocedure
get-element-by-class-name
get-element-by-class-name class-nameprocedure
get-element-by-css-selector
get-element-by-css-selector css-selectorprocedure
get-element-by-tag-name
get-element-by-tag-name tag-nameprocedure
get-element-by-xpath
get-element-by-xpath xpathprocedure
element-value
element-value elementprocedure
element-tag-name
element-tag-name elementprocedure
element-text
element-text elementprocedure
select-element!
select-element! elementprocedure
toggle-element!
toggle-element! elementprocedure
click-element!
click-element! elementprocedure
clear-element!
clear-element! elementprocedure
hover-element!
hover-element! elementprocedure
drag-element!
drag-element! elementprocedure
element-enabled?
element-enabled? elementprocedure
element-selected?
element-selected? elementprocedure
element-displayed?
element-displayed? elementprocedure
element-location
element-location elementprocedure
element-location-in-view
element-location-in-view elementprocedure
element-size
element-size elementprocedure
element-css-property-value
element-css-property-value elementprocedure
set-element-value!
set-element-value! element valueprocedure
active-element-send-modifier!
active-element-send-modifier! key down?procedure
element-attribute-value
element-attribute-value element attributeprocedure
same-element?
same-element? element1 element2procedure
get-elements-by-class-name
get-elements-by-class-name class-nameprocedure
get-elements-by-css-selector
get-elements-by-css-selector css-selectorprocedure
get-elements-by-id
get-elements-by-id idprocedure
get-elements-by-name
get-elements-by-name nameprocedure
get-elements-by-tag-name
get-elements-by-tag-name tag-nameprocedure
get-elements-by-xpath
get-elements-by-xpath xpathprocedure

Cookies

get-cookies
get-cookiesprocedure
set-cookie!
set-cookie! name value #!key path domain secure? expiryprocedure
get-cookies-by-name
get-cookies-by-name name/regexprocedure
get-cookies-by-value
get-cookies-by-value value/regexprocedure
get-cookies-by-domain
get-cookies-by-domain domain/regexprocedure
get-cookies-by-path
get-cookies-by-path path/regexprocedure
cookie-name
cookie-name cookieprocedure
cookie-value
cookie-value cookieprocedure
cookie-path
cookie-path cookieprocedure
cookie-domain
cookie-domain domainprocedure
cookie-secure?
cookie-secure? cookieprocedure
cookie-expiry
cookie-expiry cookieprocedure

Pages

page-source
page-sourceprocedure
page-title
page-titleprocedure
refresh-page!
refresh-page!procedure

Screen

screen-orientation
screen-orientationprocedure
screenshot
screenshotprocedure

Mouse actions

move-mouse-cursor-to!
move-mouse-cursor-to! #!optional x y elementprocedure
click-mouse-button!
click-mouse-button! #!optional buttonprocedure
mouse-button-down!
mouse-button-down!procedure
mouse-button-up!
mouse-button-up!procedure
double-click-mouse-button!
double-click-mouse-button!procedure

Firefox webdriver

with-firefox-webdriver
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)))procedure

"Remote" webdriver

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

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

Contents »