[prev in list] [next in list] [prev in thread] [next in thread]
List: selenium-commits
Subject: [Selenium-commits] [JIRA] Created: (SEL-153) function defined in
From: "Warren Pollans (JIRA)" <jira () public ! thoughtworks ! org>
Date: 2005-09-25 18:13:37
Message-ID: 13343696.1127672017305.JavaMail.jira () atlassian ! public ! thoughtworks ! org
[Download RAW message or body]
function defined in user-extensions.js not registered/known in SeleneseRunner
-----------------------------------------------------------------------------
Key: SEL-153
URL: http://jira.public.thoughtworks.org/browse/SEL-153
Project: Selenium
Type: Bug
Components: SeleneseRunner
Environment: OSX.3.9 and fedora-3 - with installed python and ruby
firefox and mozilla - current
selenium from svn - July 13 - 14
Reporter: Warren Pollans
I've posted this to the users list, but got no response - I'm using selenium from svn \
- about two weeks old on both boxes. Here's the mail I sent to the list. In short, \
added function works in TestRunner, not in SeleneseRunner - driven mode tests work \
without additional function; fail with it - for both ruby and python.
This is a followup on my problem with getting SeleneseRunner to recognize a function \
defined in user-extensions. I have a simpler test now - which, hopefully, someone \
else can use to duplicate the problem.
1. <before> I use the TestSelect test from the dist and run it in TestRunner and \
through SeleneseRunner using both python and ruby - all three tests succeed
2. <after> Using user-extensions.js, shown below, I modified the tests to use the new \
'verifySelectlength' command. The TestRunner test succeeds and both the python and \
ruby tests fail - the TestRunner log and the SeleneseRunner error are show below. \
The scripts are also listed below - the only difference between the scripts used in \
the <before> case and those used in the <after> case is the one line calling \
'verifySelectLength'.
Unless I've done something wrong, which is possible :-), there appears to be a \
problem with the way SeleneseRunner handles user-extensions.js. I can't really \
pursue this much farther because I'm not sure where to start. If someone could point \
me in the right direction, I'd be happy to look at this some more.
By the way, these results are from my ibook (10.3.9) - they are consistent with my \
previous whining, which referred to work done on my linux box (fedora-3)
++++++++++++++++++++++++++++++
[selenium_driver]$ cat user-extensions.js
alert('start');
Selenium.prototype.assertSelectLength = function(target, num) {
var element = this.page().findElement(target);
Assert.equals(parseInt(num), element.options.length);
};
alert('finish');
+++++++++++++++++++++++++++++
TestRunner log
* Executing: |open | ./tests/html/test_select.html | |
* Executing: |verifySelectLength | theSelect | 7 |
* Executing: |assertSelected | theSelect | Second Option |
* Executing: |select | theSelect | index=4 |
* Executing: |verifySelected | theSelect | Fifth Option |
* Executing: |select | theSelect | Third Option |
* Executing: |verifySelected | theSelect | Third Option |
* Executing: |select | theSelect | label=Fourth Option |
* Executing: |verifySelected | theSelect | Fourth Option |
* Executing: |select | theSelect | value=option6 |
* Executing: |verifySelected | theSelect | Sixth Option |
* Executing: |select | theSelect | value= |
* Executing: |verifySelected | theSelect | Empty Value Option |
* Executing: |select | theSelect | id=o4 |
* Executing: |verifySelected | theSelect | Fourth Option |
+++++++++++++++++++++++++++++++++++
[examples]$ cat testselect.py
import xmlrpclib
# Make an object to represent the XML-RPC server.
server_url = "http://localhost:8080/selenium-driver/RPC2"
app = xmlrpclib.ServerProxy(server_url)
# Bump timeout a little higher than the default 5 seconds
app.setTimeout(35)
import os
os.system('sh ./run_firefox.bat')
print app.open('http://localhost:8080/selenium-driver/tests/html/test_select.html')
print app.verifySelectLength('theSelect', '7')
print app.verifySelected('theSelect', 'Second Option')
print app.select('theSelect','index=4')
print app.verifySelected('theSelect','Fifth Option')
print app.select('theSelect','Third Option')
print app.verifySelected('theSelect','Third Option')
print app.select('theSelect','label=Fourth Option')
print app.verifySelected('theSelect','Fourth Option')
print app.select('theSelect','value=option6')
print app.verifySelected('theSelect','Sixth Option')
print app.select('theSelect','value=')
print app.verifySelected('theSelect','Empty Value Option')
print app.select('theSelect','id=o4')
print app.verifySelected('theSelect','Fourth Option')
print app.testComplete()
+++++++++++++++++++++++++++++++++++
[examples]$ cat testselect.rb
require "xmlrpc/client"
# Make an object to represent the XML-RPC server.
server = XMLRPC::Client.new( "localhost", "/selenium-driver/RPC2", 8080)
# Bump timeout a little higher than the default 5 seconds
server.call('setTimeout',35)
system 'sh ./run_firefox.bat'
puts server.call('open', \
'http://localhost:8080/selenium-driver/tests/html/test_select.html')
puts server.call('verifySelectLength','theSelect','7')
puts server.call('verifySelected','theSelect','Second Option')
puts server.call('select','theSelect','index=4')
puts server.call('verifySelected','theSelect','Fifth Option')
puts server.call('select','theSelect','Third Option')
puts server.call('verifySelected','theSelect','Third Option')
puts server.call('select','theSelect','label=Fourth Option')
puts server.call('verifySelected','theSelect','Fourth Option')
puts server.call('select','theSelect','value=option6')
puts server.call('verifySelected','theSelect','Sixth Option')
puts server.call('select','theSelect','value=')
puts server.call('verifySelected','theSelect','Empty Value Option')
puts server.call('select','theSelect','id=o4')
puts server.call('verifySelected','theSelect','Fourth Option')
puts server.call('testComplete')
+++++++++++++++++++++++++++++++++++
[examples]$ python testselect.py
OK
Traceback (most recent call last):
File "testselect.py", line 15, in ?
print app.verifySelectLength('theSelect', '7')
File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/xmlrpclib.py", \
line 1029, in __call__ return self.__send(self.__name, args)
File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/xmlrpclib.py", \
line 1316, in __request verbose=self.__verbose
File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/xmlrpclib.py", \
line 1080, in request return self._parse_response(h.getfile(), sock)
File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/xmlrpclib.py", \
line 1219, in _parse_response return u.close()
File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/xmlrpclib.py", \
line 742, in close raise Fault(**self._stack[0])
xmlrpclib.Fault: <Fault 8001: 'function verifySelectLength not found'>
+++++++++++++++++++++++++++++++++++
[examples]$ ruby testselect.rb
OK
/usr/local/lib/ruby/1.8/xmlrpc/client.rb:541:in `do_rpc': Wrong content-type: \
(RuntimeError) <?xml version='1.0'?>
<methodResponse>
<fault>
<value><struct>
<member>
<name>faultCode</name>
<value><int>8001</int></value>
</member>
<member>
<name>faultString</name>
<value><string>function verifySelectLength not found</string></value>
</member>
</struct></value>
</fault>
</methodResponse>
from /usr/local/lib/ruby/1.8/xmlrpc/client.rb:409:in `call2'
from /usr/local/lib/ruby/1.8/xmlrpc/client.rb:399:in `call'
from testselect.rb:13
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.public.thoughtworks.org/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira
_______________________________________________
Selenium-commits mailing list
Selenium-commits@lists.public.thoughtworks.org
http://lists.public.thoughtworks.org/mailman/listinfo/selenium-commits
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic