Ok, I added mouse and key events to the delegation list to Selenium. Now, you can simply call
useTelluriumEngine(true) and then try your tab test case with the following artifacts: http://maven.kungfuters.org/content/repositories/snapshots/org/seleniumhq/selenium/server/selenium-server/1.0.1-te5-SNAPSHOT/selenium-server-1.0.1-te5-20100909.022319-8.jar http://maven.kungfuters.org/content/repositories/snapshots/org/telluriumsource/tellurium-core/0.8.0-SNAPSHOT/tellurium-core-0.8.0-20100909.022558-30.jar Thanks, Jian On Wed, Sep 8, 2010 at 8:55 PM, Jian Fang <[email protected]> wrote: > keyUp and keyDown are not exposed in 0.7.0, but you can use > > def keyType(String uid, def input) > > which will fire different key events such as keyUp and keyDown to simulate > user's behavior. > > Thanks, > > Jian > > > On Wed, Sep 8, 2010 at 5:29 PM, Jade <[email protected]> wrote: > >> Hi Jian, >> >> Thanks very much for the information! That will help a lot with my >> testing. >> >> I'm still trying to figure out how to simulate pressing the tab key. >> >> Apparently keyUp and keyDown aren't avail in 0.7.0 and I've moved back >> to that version temporarily. Any ideas? >> >> Jade >> >> On Sep 8, 9:40 am, Jian Fang <[email protected]> wrote: >> > No, that is not true. Tellurium works in two modes: >> > >> > http://code.google.com/p/aost/wiki/TelluriumAWrapOfSelenium >> > >> > 1) Selenium wrapper: Tellurium core generates runtime locators from UI >> > modules, then >> > call Selenium APIs. That is to say: >> > >> > Tellurium core --> UI module --> runtime locator --> Selenium APIs with >> > locator >> > >> > 2) Tellurium way: Tellurium Engine does UI module locating and call >> > Tellurium APIs. >> > >> > Tellurium Core --> Pass UI module --> Tellurium Engine does UI module >> > locating >> > Tellurium Core --> UID based call --> Tellurium APIs. >> > >> > If you call useTelluriumEngine(false), you are running in mode 1), >> > otherwise, it is in mode 2. >> > >> > Even in mode 1), you still benefit from the UI module definition, css >> > selector, and some new APIs in term of >> > Selenium extension. >> > >> > Thanks, >> > >> > Jian >> > >> > On Wed, Sep 8, 2010 at 10:30 AM, Jade <[email protected]> wrote: >> > > Hi Jian, >> > >> > > Thank you for the information. I'm still unclear about a few items. >> > >> > > The reason that I started using tellurium is because certain tests >> > > such as clicking on all checkboxes in a form weren't working with >> > > selenium. In addition, I liked the separation of the module >> > > definitions from the test code. Since the tellurium engine isn't >> > > working at times with ajax, I've turned it off but then I'm unclear >> > > about when exactly I need to turn it back on? From your message, I'm >> > > afraid that I won't be able to use the module definitions when the >> > > tellurium engine is off. Is that correct? >> > >> > > Jade >> > >> > > On Sep 8, 9:04 am, Jian Fang <[email protected]> wrote: >> > > > Hi Jade, >> > >> > > > I understand your confusion. 0.7.0 was designed in a way for >> Selenium >> > > APIs >> > > > to reuse the >> > > > caching mechanism in the Tellurium new Engine, thus, many options >> are >> > > > provided to fine >> > > > tune the framework behavior. But now, seems this is a bit >> over-design and >> > > > could cause a lot of >> > > > confusions. As a result, in 0.8.0, Selenium APIs will not be coupled >> with >> > > > Tellurium Engine >> > > > that is to say, >> > >> > > > Selenium APIs: CSS/XPath selector, no caching mechanism >> > > > Tellurium APIs: UI module locating, caching mechanism >> > >> > > > With that, useTelluriumEngine(boolean isUse) should be enough to >> switch >> > > > between Tellurium APIs >> > > > and Selenium APIs. >> > >> > > > useTelluriumEngine(false) and useTelluriumApi(true) seem to use >> Tellurium >> > > > APIs, but turn off >> > > > the caching mechanism, which worked one week ago. With the latest >> update >> > > of >> > > > using UIDs, not >> > > > locators for Tellurium APIs, TelluriumAPIs must work with caching. >> That >> > > is >> > > > why you cannot do >> > > > that now. >> > >> > > > We do appreciate you try out Tellurium new APIs and seems they >> worked for >> > > > most time. But >> > > > Tellurium APIs are still experimental and please switch back to >> Selenium >> > > > APIs if you run into >> > > > any problems. Please keep trying the Tellurium new APIs and >> reporting >> > > > problems, which is >> > > > the only way Tellurium Engine could be improved. >> > >> > > > As a rule of thumb, the commands in the format of >> > >> > > > useXXXX(boolean isUse) >> > >> > > > for example useTelluriumEngine(boolean isUse), are defined for >> Groovy and >> > > > Java base test cases. >> > >> > > > The counterparts of the same command is >> > >> > > > enableXXXX() >> > > > disableXXXX() >> > >> > > > in DslContext. >> > >> > > > Hope this helps. >> > >> > > > Thanks, >> > >> > > > Jian >> > >> > > > On Wed, Sep 8, 2010 at 9:37 AM, Jade <[email protected]> wrote: >> > > > > Hi Jian, >> > >> > > > > Is there any documentation that specifies what the following >> options >> > > > > provide? >> > >> > > > > useTelluriumEngine(true) (not available in >> TelluriumDataDrivenModule) >> > > > > vs enableTelluriumEngine() (available in >> TelluriumDataDrivenModule) >> > >> > > > > vs. useTelluriumApi(true) >> > >> > > > > My tests seem to work best when useTelluriumEngine(false) and >> > > > > useTelluriumApi(true) is set in the TelluriumDataDrivenTest >> subclass >> > > > > but I'm wondering what specific functionality that is turning off >> and >> > > > > on for my tests? >> > >> > > > > Jade >> > >> > > > > On Sep 8, 8:00 am, Jade <[email protected]> wrote: >> > > > > > In my groovy code of my data driven test (subclass of >> > > > > > TelluriumDataDrivenModule), I have the call: >> > >> > > > > > validate "DspaceLoginForm" >> > >> > > > > > useTelluriumEngine(true) >> > > > > > type >> "DspaceLoginForm.LoginEmail", >> > > email >> > > > > > pause >> VireoTestConfig.getPauseTime() >> > >> > > > > > which results in this exception: >> > >> > > > > > groovy.lang.MissingMethodException: No signature of method: >> > >> > > >> org.tdl.vireo.webtest.datadriventests.module.DspaceLogonModule.useTelluriumEngine() >> > > > > > is applicable for argument types: (java.lang.Boolean) values: >> [true] >> > > > > > Possible solutions: useTelluriumApi(boolean) >> > >> > > > > > I'm using the latest jars as of Sept 7, 2010 >> > >> > > > > > Jade >> > >> > > > > > On Sep 7, 7:12 pm, Jian Fang <[email protected]> wrote: >> > >> > > > > > > useTelluriumEngine(isUse) actually calls couple APIs under the >> > > hood, >> > >> > >http://code.google.com/p/aost/wiki/UserGuide070TelluriumBasics#useTel. >> > > > > .. >> > >> > > > > > > In 0.8.0, we may want to remove other options so that user >> only >> > > uses >> > > > > > > useTelluriumEngine(isUse) to change the framework behavior. If >> you >> > > can >> > > > > call >> > > > > > > useTelluriumApi(), you should be able to call >> > > useTelluriumEngine(isUse) >> > > > > as >> > > > > > > well, they are >> > > > > > > all defined in the test case. >> > >> > > > > > > Thanks, >> > >> > > > > > > Jian >> > >> > > > > > > On Tue, Sep 7, 2010 at 5:17 PM, Jade <[email protected]> >> wrote: >> > > > > > > > Since the tests are data driven, all of the code that >> manipulates >> > > the >> > > > > > > > html elements is in groovy. The only option is to set >> > > > > > > > useTelluriumApi() to false before calling these lines and >> then to >> > > > > true >> > > > > > > > afterwards but that's not the same as setting >> TelluriumEngine to >> > > > > > > > false. I can set the TelluriumEngine to false in the test >> code >> > > such >> > > > > as >> > > > > > > > public void testDataDriven() { >> > >> > > > > > > > // If you are not using Tellurium Engine, you >> > > don't >> > > > > need to >> > > > > > > > use >> > > > > > > > cache. >> > > > > > > > useTelluriumEngine(false); >> > >> > > > > > > > but then I can't turn it off only before calling the few >> lines of >> > > > > code >> > > > > > > > in my earlier post and then turn the tellurium engine back >> on >> > > again. >> > >> > > > > > > > What different behaviors will we see with >> > > useTelluriumEngine(false); >> > > > > > > > versus useTelluriumApi(false); ? >> > >> > > > > > > > Jade >> > >> > > > > > > > On Sep 7, 3:36 pm, Jian Fang <[email protected]> >> wrote: >> > > > > > > > > Well, it depends on what key events the Javascript handler >> > > responds >> > > > > to. >> > > > > > > > If >> > > > > > > > > you use Trump to record the UI, >> > > > > > > > > what is the respond attribute for the generated UI object? >> > >> > > > > > > > > Also, Tellurium new Engine may have event handling >> problem, >> > > simply >> > > > > switch >> > > > > > > > > back to Selenium to see if >> > > > > > > > > your key event works by calling >> > >> > > > > > > > > useTelluriumEngine(false); >> > >> > > > > > > > > Thanks, >> > >> > > > > > > > > Jian >> > >> > > > > > > > > On Tue, Sep 7, 2010 at 4:30 PM, Jade <[email protected]> >> wrote: >> > > > > > > > > > Hi again, >> > >> > > > > > > > > > Our forms use a lot of ajax. In order to change a value >> of a >> > > text >> > > > > box, >> > > > > > > > > > the user has to first click on the text box. That >> changes the >> > > > > text box >> > > > > > > > > > into an input box. Then the user changes the value and >> > > presses >> > > > > the tab >> > > > > > > > > > key to trigger ajax to save the value. >> > >> > > > > > > > > > I've tried simulating pressing the tab key with this >> code: >> > >> > > > > > > > > > // press the tab key which triggers saving the value >> > > > > > > > > > context.keyDown(inputUid, "\\9") >> > > > > > > > > > context.keyUp(inputUid, "\\9") >> > >> > > > > > > > > > but it's not moving the cursor to the next field thus >> the >> > > data >> > > > > changes >> > > > > > > > > > aren't saved. >> > >> > > > > > > > > > What's the correct way to simulate pressing the tab key? >> > >> > > > > > > > > > Here are my test values for the data driven tests: >> > >> > > > > > > > > > useTelluriumEngine(true); >> > > > > > > > > > useTelluriumApi(true); >> > > > > > > > > > useCache true >> > > > > > > > > > useCssSelector(true); >> > > > > > > > > > useTrace(true); >> > >> > > > > > > > > > Jade >> > >> > > > > > > > > > -- >> > > > > > > > > > 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%[email protected]> >> <tellurium-users%[email protected]<tellurium-users%[email protected]> >> > >> > > <tellurium-users%[email protected]<tellurium-users%[email protected]> >> <tellurium-users%[email protected]<tellurium-users%[email protected]> >> > >> > >> > > > > <tellurium-users%[email protected]<tellurium-users%[email protected]> >> <tellurium-users%[email protected]<tellurium-users%[email protected]> >> > >> > > <tellurium-users%[email protected]<tellurium-users%[email protected]> >> <tellurium-users%[email protected]<tellurium-users%[email protected]> >> > >> > >> > > > > > > > <tellurium-users%[email protected]<tellurium-users%[email protected]> >> <tellurium-users%[email protected]<tellurium-users%[email protected]> >> > >> > > <tellurium-users%[email protected]<tellurium-users%[email protected]> >> <tellurium-users%[email protected]<tellurium-users%[email protected]> >> > >> > >> > > > > <tellurium-users%[email protected]<tellurium-users%[email protected]> >> <tellurium-users%[email protected]<tellurium-users%[email protected]> >> > >> > > <tellurium-users%[email protected]<tellurium-users%[email protected]> >> <tellurium-users%[email protected]<tellurium-users%[email protected]> >> > >> > >> > > > > > > > > > . >> > > > > > > > > > For more options, visit this group at >> > > > > > > > > >http://groups.google.com/group/tellurium-users?hl=en. >> > >> > > > > > > > -- >> > > > > > > > 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 >> > >> > ... >> > >> > read more ยป >> >> -- >> 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%[email protected]> >> . >> For more options, visit this group at >> http://groups.google.com/group/tellurium-users?hl=en. >> >> > -- 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.
