You're awesome! Thank you so much Jian. I'll try them out today. Jade
On Sep 8, 9:27 pm, Jian Fang <[email protected]> wrote: > 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/seleni... > > http://maven.kungfuters.org/content/repositories/snapshots/org/tellur... > > 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") > > ... > > 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]. For more options, visit this group at http://groups.google.com/group/tellurium-users?hl=en.
