Wiki
Download
Manual
Eggs
API
Tests
Bugs
show
edit
history
You can edit this page using
wiki syntax
for markup.
Article contents:
== Outdated egg! This is an egg for CHICKEN 4, the unsupported old release. You're almost certainly looking for [[/eggref/5/selenium|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 [[https://wiki.call-cc.org/chicken-projects/egg-index-5.html|egg index]]. Otherwise, please consider porting this egg to the current version of CHICKEN. [[tags: egg selenium]] == selenium [[toc:]] === Introduction Chicken bindings for Selenium ([[http://code.google.com/p/selenium|http://code.google.com/p/selenium]]) Very early stages. Implements the JSON Wire Protocol ([[http://code.google.com/p/selenium/wiki/JsonWireProtocol|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|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 [[/users/mario-domenech-goulart|Mario Domenech Goulart]] === Repository [[https://github.com/mario-goulart/selenium|https://github.com/mario-goulart/selenium]] === API ==== Session ===== quit! <procedure>(quit!)</procedure> ===== capabilities <procedure>(capabilities)</procedure> ===== set-implicit-wait-time! <procedure>(set-implicit-wait-time! time-ms)</procedure> ==== Javascript ===== execute-javascript <procedure>(execute-javascript script args)</procedure> ===== execute-javascript-async <procedure>(execute-javascript-async script args)</procedure> ===== javascript-dialog-text <procedure>(javascript-dialog-text)</procedure> ===== set-javascript-dialog-text! <procedure>(set-javascript-dialog-text! text)</procedure> ===== dismiss-javascript-dialog! <procedure>(dismiss-javascript-dialog!)</procedure> ===== accept-javascript-dialog! <procedure>(accept-javascript-dialog!)</procedure> ==== URLs ===== set-url! <procedure>(set-url! url)</procedure> ===== current-url <procedure>(current-url)</procedure> ==== Navigation ===== navigate-forward! <procedure>(navigate-forward!)</procedure> ===== navigate-backward! <procedure>(navigate-backward!)</procedure> ==== IME: Input Method Editor ===== ime-available-engines <procedure>(ime-available-engines)</procedure> ===== ime-active-engine <procedure>(ime-active-engine)</procedure> ===== ime-activated? <procedure>(ime-activated?)</procedure> ===== ime-deactivate! <procedure>(ime-deactivate!)</procedure> ===== ime-activate! <procedure>(ime-activate!)</procedure> ==== Frames & windows ===== focus-frame! <procedure>(focus-frame! id)</procedure> ===== focus-window! <procedure>(focus-window! id)</procedure> ===== close-window! <procedure>(close-window! id)</procedure> ===== window-handle <procedure>(window-handle)</procedure> ===== window-handles <procedure>(window-handles)</procedure> ==== User input ===== user-input-speed <procedure>(user-input-speed)</procedure> ===== set-user-input-speed! <procedure>(set-user-input-speed! speed)</procedure> ==== Elements ===== active-element <procedure>(active-element)</procedure> ===== get-element-by-id <procedure>(get-element-by-id id)</procedure> ===== get-element-by-name <procedure>(get-element-by-name name)</procedure> ===== get-element-by-class-name <procedure>(get-element-by-class-name class-name)</procedure> ===== get-element-by-css-selector <procedure>(get-element-by-css-selector css-selector)</procedure> ===== get-element-by-link-text <procedure>(get-element-by-link-text link-text)</procedure> ===== get-element-by-partial-link-text <procedure>(get-element-by-partial-link-text partial-link-text)</procedure> ===== get-element-by-tag-name <procedure>(get-element-by-tag-name tag-name)</procedure> ===== get-element-by-xpath <procedure>(get-element-by-xpath xpath)</procedure> ===== element-value <procedure>(element-value element)</procedure> ===== element-tag-name <procedure>(element-tag-name element)</procedure> ===== element-text <procedure>(element-text element)</procedure> ===== select-element! <procedure>(select-element! element)</procedure> ===== toggle-element! <procedure>(toggle-element! element)</procedure> ===== click-element! <procedure>(click-element! element)</procedure> ===== clear-element! <procedure>(clear-element! element)</procedure> ===== hover-element! <procedure>(hover-element! element)</procedure> ===== drag-element! <procedure>(drag-element! element)</procedure> ===== element-enabled? <procedure>(element-enabled? element)</procedure> ===== element-selected? <procedure>(element-selected? element)</procedure> ===== element-displayed? <procedure>(element-displayed? element)</procedure> ===== element-location <procedure>(element-location element)</procedure> ===== element-location-in-view <procedure>(element-location-in-view element)</procedure> ===== element-size <procedure>(element-size element)</procedure> ===== element-css-property-value <procedure>(element-css-property-value element)</procedure> ===== set-element-value! <procedure>(set-element-value! element value)</procedure> ===== active-element-send-modifier! <procedure>(active-element-send-modifier! key down?)</procedure> ===== element-attribute-value <procedure>(element-attribute-value element attribute)</procedure> ===== same-element? <procedure>(same-element? element1 element2)</procedure> ===== get-elements-by-class-name <procedure>(get-elements-by-class-name class-name)</procedure> ===== get-elements-by-css-selector <procedure>(get-elements-by-css-selector css-selector)</procedure> ===== get-elements-by-id <procedure>(get-elements-by-id id)</procedure> ===== get-elements-by-name <procedure>(get-elements-by-name name)</procedure> ===== get-elements-by-link-text <procedure>(get-elements-by-link-text link-text)</procedure> ===== get-elements-by-partial-link-text <procedure>(get-elements-by-partial-link-text partial-link-text)</procedure> ===== get-elements-by-tag-name <procedure>(get-elements-by-tag-name tag-name)</procedure> ===== get-elements-by-xpath <procedure>(get-elements-by-xpath xpath)</procedure> ==== Cookies ===== get-cookies <procedure>(get-cookies)</procedure> ===== set-cookie! <procedure>(set-cookie! name value #!key path domain secure? expiry)</procedure> ===== get-cookies-by-name <procedure>(get-cookies-by-name name/regex)</procedure> ===== get-cookies-by-value <procedure>(get-cookies-by-value value/regex)</procedure> ===== get-cookies-by-domain <procedure>(get-cookies-by-domain domain/regex)</procedure> ===== get-cookies-by-path <procedure>(get-cookies-by-path path/regex)</procedure> ===== cookie-name <procedure>(cookie-name cookie)</procedure> ===== cookie-value <procedure>(cookie-value cookie)</procedure> ===== cookie-path <procedure>(cookie-path cookie)</procedure> ===== cookie-domain <procedure>(cookie-domain domain)</procedure> ===== cookie-secure? <procedure>(cookie-secure? cookie)</procedure> ===== cookie-expiry <procedure>(cookie-expiry cookie)</procedure> ==== Pages ===== page-source <procedure>(page-source)</procedure> ===== page-title <procedure>(page-title)</procedure> ===== refresh-page! <procedure>(refresh-page!)</procedure> ==== Screen ===== screen-orientation <procedure>(screen-orientation)</procedure> ===== screenshot <procedure>(screenshot)</procedure> ==== Mouse actions ===== move-mouse-cursor-to! <procedure>(move-mouse-cursor-to! #!optional x y element)</procedure> ===== click-mouse-button! <procedure>(click-mouse-button! #!optional button)</procedure> ===== mouse-button-down! <procedure>(mouse-button-down!)</procedure> ===== mouse-button-up! <procedure>(mouse-button-up!)</procedure> ===== double-click-mouse-button! <procedure>(double-click-mouse-button!)</procedure> ==== 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"))))</procedure> ==== "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 '()))</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
Description of your changes:
I would like to authenticate
Authentication
Username:
Password:
Spam control
What do you get when you add 19 to 16?