Hi Rune, Window object has extra attributes such as id, name, and title, which are not defined in clocator, but should belong to the Window object itself. More details here,
http://code.google.com/p/aost/wiki/UserGuideUIObjects#Window Under the hood, the name attribute is used by Selenium for popup window, thus, you need to specify the name attribute for your popup window. Please let us know if this could solve your problem. Thanks, Jian On Fri, Oct 9, 2009 at 7:54 AM, Rune <[email protected]> wrote: > > Hi all. > > Can't get my head around this. I have to write a test for an 3rd party > application that uses popups. > > This example illustrates the problem: > > UI elements: > > //Link that creates a popup window on the main window. > ui.Container(uid: "mainwindow", clocator: [tag: "body"]){ > UrlLink(uid: "makepopup", clocator: [tag: "a", text: "Click to make > popup"]) > } > > //The popup window > ui.Window(uid: "popupwindow", clocator: [title: "PopupTitle"] ){ > } > > //A Link on the popup page > ui.Container(uid: "popup", clocator: [tag: "body"]){ > UrlLink(uid: "link", clocator: [tag: "a", text: "vg"]) > } > > The test: > > public void generatePopup() { > waitForPageToLoad 10000; > click "mainwindow.makepopup" > waitForPopUp "popupwindow", 10000 > selectWindow "popupwindow" > click "popup.link" > } > > This generates: > > java.lang.NullPointerException > at java.net.URLEncoder.encode(Unknown Source) > at com.thoughtworks.selenium.DefaultRemoteCommand.urlEncode > (DefaultRemoteCommand.java:86) > at > com.thoughtworks.selenium.DefaultRemoteCommand.getCommandURLString > (DefaultRemoteCommand.java:59) > at com.thoughtworks.selenium.HttpCommandProcessor.doCommand > (HttpCommandProcessor.java:86) > at com.thoughtworks.selenium.DefaultSelenium.waitForPopUp > (DefaultSelenium.java:367) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) > at java.lang.reflect.Method.invoke(Unknown Source) > at org.codehaus.groovy.reflection.CachedMethod.invoke > (CachedMethod.java:86) > at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:234) > at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1049) > at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:880) > at groovy.lang.DelegatingMetaClass.invokeMethod > (DelegatingMetaClass.java:149) > at groovy.lang.MetaObjectProtocol$invokeMethod.call(Unknown Source) > at org.tellurium.dispatch.Dispatcher.invokeMethod(Dispatcher.groovy: > 26) > at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.call > (PogoInterceptableSite.java:45) > at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall > (CallSiteArray.java:40) > at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call > (AbstractCallSite.java:117) > at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call > (AbstractCallSite.java:129) > at org.tellurium.access.Accessor.waitForPopUp(Accessor.groovy:194) > at org.tellurium.access.Accessor$waitForPopUp.call(Unknown Source) > at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall > (CallSiteArray.java:40) > at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call > (AbstractCallSite.java:117) > at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call > (AbstractCallSite.java:129) > at org.tellurium.dsl.DslContext$_waitForPopUp_closure9.doCall > (DslContext.groovy:167) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) > at java.lang.reflect.Method.invoke(Unknown Source) > at org.codehaus.groovy.reflection.CachedMethod.invoke > (CachedMethod.java:86) > at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:234) > at > org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod > (ClosureMetaClass.java:272) > at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:880) > at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call > (PogoMetaClassSite.java:39) > at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall > (CallSiteArray.java:40) > at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call > (AbstractCallSite.java:117) > at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call > (AbstractCallSite.java:125) > at org.tellurium.object.Window.waitForPopUp(Window.groovy:40) > at org.tellurium.object.Window$waitForPopUp.call(Unknown Source) > at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall > (CallSiteArray.java:40) > at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call > (AbstractCallSite.java:117) > at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call > (AbstractCallSite.java:129) > at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callSafe > (AbstractCallSite.java:97) > at org.tellurium.dsl.DslContext.waitForPopUp(DslContext.groovy:166) > at org.tellurium.dsl.DslContext$waitForPopUp.callCurrent(Unknown > Source) > at > org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent > (CallSiteArray.java:44) > at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent > (AbstractCallSite.java:143) > at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent > (AbstractCallSite.java:155) > at com.<myproject>.tellurium.MyModule.generatePopup(MyModule.groovy: > 27) > at > com.<myproject>.tellurium.MyTestCase.testPopup(MyTestCase.java:34) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) > at java.lang.reflect.Method.invoke(Unknown Source) > at org.junit.internal.runners.TestMethod.invoke(TestMethod.java:59) > at org.junit.internal.runners.MethodRoadie.runTestMethod > (MethodRoadie.java:98) > at org.junit.internal.runners.MethodRoadie$2.run(MethodRoadie.java: > 79) > at > org.junit.internal.runners.MethodRoadie.runBeforesThenTestThenAfters > (MethodRoadie.java:87) > at > org.junit.internal.runners.MethodRoadie.runTest(MethodRoadie.java: > 77) > at org.junit.internal.runners.MethodRoadie.run(MethodRoadie.java:42) > at org.junit.internal.runners.JUnit4ClassRunner.invokeTestMethod > (JUnit4ClassRunner.java:88) > at org.junit.internal.runners.JUnit4ClassRunner.runMethods > (JUnit4ClassRunner.java:51) > at org.junit.internal.runners.JUnit4ClassRunner$1.run > (JUnit4ClassRunner.java:44) > at org.junit.internal.runners.ClassRoadie.runUnprotected > (ClassRoadie.java:27) > at org.junit.internal.runners.ClassRoadie.runProtected > (ClassRoadie.java:37) > at org.junit.internal.runners.JUnit4ClassRunner.run > (JUnit4ClassRunner.java:42) > at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run > (JUnit4TestReference.java:46) > at org.eclipse.jdt.internal.junit.runner.TestExecution.run > (TestExecution.java:38) > at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests > (RemoteTestRunner.java:467) > at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests > (RemoteTestRunner.java:683) > at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run > (RemoteTestRunner.java:390) > at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main > (RemoteTestRunner.java:197) > > > I'm pretty new to Tellurium, so if anyone have any clue I would be > greatfull > > Thanks, Rune. > > > > > > --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
