Error processing request

Parameters

CONTENT_LENGTH0
REQUEST_METHODGET
REQUEST_URI/revision/Selenium?V=5
QUERY_STRINGV=5
CONTENT_TYPE
DOCUMENT_URI/revision/Selenium
DOCUMENT_ROOT/var/www/nikit/nikit/nginx/../docroot
SCGI1
SERVER_PROTOCOLHTTP/1.1
HTTPSon
REMOTE_ADDR172.70.127.113
REMOTE_PORT40242
SERVER_PORT4443
SERVER_NAMEwiki.tcl-lang.org
HTTP_HOSTwiki.tcl-lang.org
HTTP_CONNECTIONKeep-Alive
HTTP_ACCEPT_ENCODINGgzip, br
HTTP_X_FORWARDED_FOR13.58.121.131
HTTP_CF_RAY87e500b64ffce157-ORD
HTTP_X_FORWARDED_PROTOhttps
HTTP_CF_VISITOR{"scheme":"https"}
HTTP_ACCEPT*/*
HTTP_USER_AGENTMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; [email protected])
HTTP_CF_CONNECTING_IP13.58.121.131
HTTP_CDN_LOOPcloudflare
HTTP_CF_IPCOUNTRYUS

Body


Error

Unknow state transition: LINE -> END

-code

1

-level

0

-errorstack

INNER {returnImm {Unknow state transition: LINE -> END} {}} CALL {my render_wikit Selenium {Selenium [http://selenium.openqa.org/] is a test tool for web applications.
Selenium tests run directly in a browser, just as real users do. And they run in
Internet Explorer, Mozilla and Firefox on Windows, Linux, and Macintosh.

The main difference of this test setup as compared to doing HTTP requests
with Tcl's http::geturl is that there is a browser in between, so it can test
browser compatibility for your server pages, as well as JavaScript and Ajax.

----

Selenium Remote Control [http://www.openqa.org/selenium-rc/] is a test tool that
allows you to write automated web application UI tests in any programming
language against any HTTP website using any mainstream JavaScript-enabled
browser.

----

Selenium WebDriver [http://docs.seleniumhq.org/projects/webdriver/] is an
alternative to Selenium Remote Control (RC). In contrast to Selenium RC, which
controls the browser by injecting JavaScript, Selenium WebDriver talks to the
browser directly through a native interface.

While this mimics real world behavior better and results in a stricter
separation of test framework and AUT, it requires a custom driver for different
browser engines and thus may not be an option for every browser on every
platform. Drivers for many common browsers are available for download from
the Selenium website [http://docs.seleniumhq.org/download/].

As of September 2014, an implementation of the WebDriver API for Tcl is available
at [http://caiusproject.com].

The rest of this Wiki page deals with the more seasoned Selenium Remote Control.

----

Alas, as of Feb 2007 there was no Tcl driver... so I wrote one :)

It's about 100 lines of Tcl.  The selenium.tcl script can be found at
[http://www.equi4.com/pub/etc/selenium.tcl].  It requires an HTTP 1.1 aware version
of geturl, which I had lying around from a previous [WebDAV] project anyway.
You can get a copy of that script from [http://www.equi4.com/pub/etc/http.tcl].
( [TP] Adjusted paths of selenium.tcl and http.tcl.)

Here are the comments at the start of the selenium.tcl file:
 
======
 # selenium.tcl
 #
 #       This code implements a driver to control Selenium, an open source
 #       test tool for web applications, see http://selenium.openqa.org/
 #
 #       This code is modeled after the Python and Ruby drivers.  It differs
 #       by not implementing each supported command separately, but instead
 #       using a default dispatch to pass commands to the Selenium server with
 #       very little modification.  This is why the commands are not called
 #       get_title, wait_for_page_to_load, etc. but with the same "camelCase"
 #       names used by Selenium itself, i.e. getTitle, waitForPageToLoad, etc.
 #
 #       All commands known to return a list are singled out and their return
 #       string is converted before returning the result.  Since everything is
 #       a string in Tcl, no special handling is needed for numbers and booleans
 #       (boolean results will be the same as in Selenium, i.e. "true"/"false").
 #
 # Note: This code requires a new HTTP/1.1 aware version of geturl - the current
 #       http 2.4 package in Tcl doesn't know how to keep a 1.1 connection alive
 #       and will slow down because *each* Selenium request will time out.
 #       
 # Example use:
 #
 #       package require selenium
 #       
 #       Se init localhost 4444 *firefox http://www.google.com/webhp
 #       Se start
 #       
 #       Se open http://www.google.com/webhp
 #       Se type q "hello world"
 #       Se clickAndWait btnG
 #       Se assertTitle "hello world - Google Search"
 #       
 #       Se stop
 #
 # by Jean-Claude Wippler, 2007-02-24
======

Note: there is a quirk with Selenium RC 0.90 and FireFox 2.0.0.2 (at least on
Mac OS X), which causes the Selenium proxy (written in Java) to hang on startup.
AFAIK, FireFox 2.0.0.0 didn't have this problem - I hope it gets fixed soon.

On Mac OS X, a workaround is to launch the Selenium proxy as follows:
    java -jar selenium-server.jar -proxyInjectionMode -browserSessionReuse
On first use, it'll launch FireFox which you then need to ''Quit'' (!).
Selenium detects this and relaunches FireFox, at which point you can just keep
both running (minimized, if you prefer) and they will then happily perform as
many test runs as you care to throw at them.  When tests fail, I generally
click on FireFox's back/forward buttons a few times to let all tests finish.
Otherwise you may end up having to restart both Selenium and FireFox.

Selenium includes a large set of commands, see the (older) 0.8.0 documentation
at [http://release.openqa.org/selenium-core/0.8.0/reference.html].
So far, the new Tcl driver appears to handle all commands just fine.

A test such as "Se waitForTextPresent foo*glob*bar" is very useful when the
page you're testing has Ajax background activity, since it'll actually wait for
the result to appear, while the browser is doing all the async JS processing.

Note also that you can of course put all your Se calls inside [tcltest]s.

Enjoy! -[jcw]

======

I created selenium library for the Tcl world. It's very complete. I am currently using this framework in production.
https://sourceforge.net/projects/selenium-tcl


<<categories>> Internet} regexp2} CALL {my render Selenium {Selenium [http://selenium.openqa.org/] is a test tool for web applications.
Selenium tests run directly in a browser, just as real users do. And they run in
Internet Explorer, Mozilla and Firefox on Windows, Linux, and Macintosh.

The main difference of this test setup as compared to doing HTTP requests
with Tcl's http::geturl is that there is a browser in between, so it can test
browser compatibility for your server pages, as well as JavaScript and Ajax.

----

Selenium Remote Control [http://www.openqa.org/selenium-rc/] is a test tool that
allows you to write automated web application UI tests in any programming
language against any HTTP website using any mainstream JavaScript-enabled
browser.

----

Selenium WebDriver [http://docs.seleniumhq.org/projects/webdriver/] is an
alternative to Selenium Remote Control (RC). In contrast to Selenium RC, which
controls the browser by injecting JavaScript, Selenium WebDriver talks to the
browser directly through a native interface.

While this mimics real world behavior better and results in a stricter
separation of test framework and AUT, it requires a custom driver for different
browser engines and thus may not be an option for every browser on every
platform. Drivers for many common browsers are available for download from
the Selenium website [http://docs.seleniumhq.org/download/].

As of September 2014, an implementation of the WebDriver API for Tcl is available
at [http://caiusproject.com].

The rest of this Wiki page deals with the more seasoned Selenium Remote Control.

----

Alas, as of Feb 2007 there was no Tcl driver... so I wrote one :)

It's about 100 lines of Tcl.  The selenium.tcl script can be found at
[http://www.equi4.com/pub/etc/selenium.tcl].  It requires an HTTP 1.1 aware version
of geturl, which I had lying around from a previous [WebDAV] project anyway.
You can get a copy of that script from [http://www.equi4.com/pub/etc/http.tcl].
( [TP] Adjusted paths of selenium.tcl and http.tcl.)

Here are the comments at the start of the selenium.tcl file:
 
======
 # selenium.tcl
 #
 #       This code implements a driver to control Selenium, an open source
 #       test tool for web applications, see http://selenium.openqa.org/
 #
 #       This code is modeled after the Python and Ruby drivers.  It differs
 #       by not implementing each supported command separately, but instead
 #       using a default dispatch to pass commands to the Selenium server with
 #       very little modification.  This is why the commands are not called
 #       get_title, wait_for_page_to_load, etc. but with the same "camelCase"
 #       names used by Selenium itself, i.e. getTitle, waitForPageToLoad, etc.
 #
 #       All commands known to return a list are singled out and their return
 #       string is converted before returning the result.  Since everything is
 #       a string in Tcl, no special handling is needed for numbers and booleans
 #       (boolean results will be the same as in Selenium, i.e. "true"/"false").
 #
 # Note: This code requires a new HTTP/1.1 aware version of geturl - the current
 #       http 2.4 package in Tcl doesn't know how to keep a 1.1 connection alive
 #       and will slow down because *each* Selenium request will time out.
 #       
 # Example use:
 #
 #       package require selenium
 #       
 #       Se init localhost 4444 *firefox http://www.google.com/webhp
 #       Se start
 #       
 #       Se open http://www.google.com/webhp
 #       Se type q "hello world"
 #       Se clickAndWait btnG
 #       Se assertTitle "hello world - Google Search"
 #       
 #       Se stop
 #
 # by Jean-Claude Wippler, 2007-02-24
======

Note: there is a quirk with Selenium RC 0.90 and FireFox 2.0.0.2 (at least on
Mac OS X), which causes the Selenium proxy (written in Java) to hang on startup.
AFAIK, FireFox 2.0.0.0 didn't have this problem - I hope it gets fixed soon.

On Mac OS X, a workaround is to launch the Selenium proxy as follows:
    java -jar selenium-server.jar -proxyInjectionMode -browserSessionReuse
On first use, it'll launch FireFox which you then need to ''Quit'' (!).
Selenium detects this and relaunches FireFox, at which point you can just keep
both running (minimized, if you prefer) and they will then happily perform as
many test runs as you care to throw at them.  When tests fail, I generally
click on FireFox's back/forward buttons a few times to let all tests finish.
Otherwise you may end up having to restart both Selenium and FireFox.

Selenium includes a large set of commands, see the (older) 0.8.0 documentation
at [http://release.openqa.org/selenium-core/0.8.0/reference.html].
So far, the new Tcl driver appears to handle all commands just fine.

A test such as "Se waitForTextPresent foo*glob*bar" is very useful when the
page you're testing has Ajax background activity, since it'll actually wait for
the result to appear, while the browser is doing all the async JS processing.

Note also that you can of course put all your Se calls inside [tcltest]s.

Enjoy! -[jcw]

======

I created selenium library for the Tcl world. It's very complete. I am currently using this framework in production.
https://sourceforge.net/projects/selenium-tcl


<<categories>> Internet}} CALL {my revision Selenium} CALL {::oo::Obj5361449 process revision/Selenium} CALL {::oo::Obj5361447 process}

-errorcode

NONE

-errorinfo

Unknow state transition: LINE -> END
    while executing
"error $msg"
    (class "::Wiki" method "render_wikit" line 6)
    invoked from within
"my render_$default_markup $N $C $mkup_rendering_engine"
    (class "::Wiki" method "render" line 8)
    invoked from within
"my render $name $C"
    (class "::Wiki" method "revision" line 31)
    invoked from within
"my revision $page"
    (class "::Wiki" method "process" line 56)
    invoked from within
"$server process [string trim $uri /]"

-errorline

4