Hi Jian, Unfortunately I haven't updated for a while, so last working version for us was 0.7.0-20091019.164526-34
On Feb 11, 9:15 pm, Jian Fang <[email protected]> wrote: > I created the following test case and seems it produced the same result as > you described, i.e., return immediately. > > �...@test > public void testWaitForCondition(){ > useTelluriumEngine(false); > jlm.waitForCondition("try {var doc > =selenium.browserbot.getCurrentWindow(true).document;doc.readyState > =='incomplete'}catch(err){false}", 10000); > jlm.waitForCondition("selenium.getText(\"//inp...@type='text' and > @name='j_username']\")=='Tellurium", 10000); > useTelluriumEngine(true); > jlm.waitForCondition("try {var doc > =selenium.browserbot.getCurrentWindow(true).document;doc.readyState > =='incomplete'}catch(err){false}", 10000); > jlm.waitForCondition("selenium.getText(\"//inp...@type='text' and > @name='j_username']\")=='Tellurium", 10000); > jlm.logon("tellurium", "source"); > } > > Result: > > TE: Name: waitForCondition, start: 1265922636902, duration: 25ms > TE: Name: waitForCondition, start: 1265922636929, duration: 24ms > > It is strange since Tellurium new API does not handle the waitForCondition > command and simply delegates it to selenium core. This behavior is proved by > the fact that it returns immediately no matter whether I use Tellurium > Engine or not. > > What was the last time your code worked fine with the waitForCondition > command? i.e., with 0.6.0 or what version of 0.7.0 SNAPSHOT? > > Thanks, > > Jian > > > > On Thu, Feb 11, 2010 at 9:47 AM, Jian Fang <[email protected]> wrote: > > I will look into the first waitForCondition problem. It might be related to > > the bundle tier. > > Could you put a command > > > pause(100) > > > after the waitForCondition to see if you can work around this problem? > > > For the custom method, new Tellurium API provides a method for users to > > register > > the custom method since I don't like Selenium core API name conversion. > > > Tellurium.prototype.registerApi = function(apiName, requireElement, > > returnType) > > > where apiName is the method name, requireElement means it requires a > > locator. The returnType > > is defined by the enum in core > > > public enum ReturnType { > > VOID, > > NUMBER, > > STRING, > > BOOLEAN, > > ARRAY, > > MAP, > > OBJECT > > } > > > For example, you can register a custom method as follows, > > > teJQuery(document).ready(function() { > > tellurium.registerApi("getUiByTag", false, "ARRAY"); > > }); > > > Also, are you sure that you are using custom selenium server snapshot > > 1.0.1-te2-SNAPSHOT? > > > tellurium.js<http://localhost:4444/selenium-server/core/scripts/tellurium.js>, > > lineNumber -> 957, > > does not point to the statement > > > selenium[apiName] > > > in trunk/engine any more. > > > Thanks, > > > Jian > > > On Thu, Feb 11, 2010 at 5:53 AM, dominicm <[email protected]>wrote: > > >> Hi, > > >> I think there is a problem with the latest build when using selenium > >> waitForCondition. > > >> e.g. from Selenium log window > >> nfo(1265883357685): Executing: |getBundleResponse | [{"uid":"","args": > >> ["selenium.browserbot.getCurrentWindow().betfair.User.getLoginState()=== > >> 'loggedOut'","60000"],"name":"waitForCondition","sequ":64}] | | > > >> Does not actually wiat for the statement to eval to true, instead it > >> appears to call once and proceed irrespective of the result, so when I > >> change the script so that it will allways return false, it still runs > >> once and proceeds. > > >> info(1265884649685): Executing: |getBundleResponse | [{"uid":"","args": > >> ["selenium.browserbot.getCurrentWindow().betfair.User.getLoginState()=== > >> 'loggedOut1'","10000"],"name":"waitForCondition","sequ":25}] | | > > >> A more generic Javascript that you could use to test would be > > >> waitForCondition("try {var doc = > >> selenium.browserbot.getCurrentWindow(true).document;doc.readyState == > >> 'complete'}catch(err){false}") > > >> If you change 'complete' to anything else it will not error or timeout > >> as it should. I suspect this is happening with more or less anything > >> that uses selenium's timeout functionality. > > >> Also there is a problem with user extensions. e.g. my custom jQuery > >> click method (not needed any more I know, but does illustrate the > >> point). > > >> # info(1265885104194): Executing: |getBundleResponse | > >> [{"uid":"account.loginMessages.membershipNumberLink","args": > > >> ["jquery=#customerNumberLinkText"],"name":"waitForElementVisibleJQ","sequ": > >> 43}] | | > >> # error(1265885104194): Unexpected Exception: selenium[apiName] is > >> undefined > >> # error(1265885104195): Exception details: message -> > >> selenium[apiName] is undefined, fileName -> > >>http://localhost:4444/selenium-server/core/scripts/tellurium.js, > >> lineNumber -> 957, stack -> ([object Object],[object Object])@http:// > >> localhost:4444/selenium-server/core/scripts/tellurium.js:957 ()@http:// > >> localhost:4444/selenium-server/core/scripts/tellurium.js:911 ("[{\"uid > >> \":\"account.loginMessages.membershipNumberLink\",\"args\": > >> [\"jquery=#customerNumberLinkText\"],\"name\":\"waitForElementVisibleJQ > >> \",\"sequ\":43}]","")@http://localhost:4444/selenium-server/core/ > >> scripts/tellurium-extensions.js:337<http://localhost:4444/selenium-server/core/%0Ascripts/tellurium-exten...>("[{\"uid\": > >> \"account.loginMessages.membershipNumberLink\",\"args\": > >> [\"jquery=#customerNumberLinkText\"],\"name\":\"waitForElementVisibleJQ > >> \",\"sequ\":43}]","")@http://localhost:4444/selenium-server/core/ > >> scripts/htmlutils.js:60<http://localhost:4444/selenium-server/core/%0Ascripts/htmlutils.js:60>([object > >> Object],[object Object])@http:// > >> localhost:4444/selenium-server/core/scripts/selenium- > >> commandhandlers.js:330 ()@http://localhost:4444/selenium-server/core/ > >> scripts/selenium-executionloop.js:112<http://localhost:4444/selenium-server/core/%0Ascripts/selenium-execut...>(-10)@ > >>http://localhost:4444/ > >> selenium-server/core/scripts/selenium-executionloop.js:78<http://localhost:4444/%0Aselenium-server/core/scripts/selenium-execut...>(-10)@http:// > >> localhost:4444/selenium-server/core/scripts/htmlutils.js:60 , name -> > >> TypeError > > >> I suspect that the two problems are related. > > >> -- > >> You received this message because you are subscribed to the Google Groups > >> "tellurium-users" group. > >> To post to this group, send email to [email protected]. > >> To unsubscribe from this group, send email to > >> [email protected]<tellurium-users%2bunsubscr...@googlegroups.com> > >> . > >> For more options, visit this group at > >>http://groups.google.com/group/tellurium-users?hl=en.- Hide quoted text - > > - Show quoted text - -- You received this message because you are subscribed to the Google Groups "tellurium-users" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/tellurium-users?hl=en.
