you have to write your selenium tests to use that attribute instead of the component id.
-igor On Mon, Oct 19, 2009 at 1:39 PM, Douglas Ferguson <doug...@douglasferguson.us> wrote: > I added this: > > getDebugSettings().setOutputComponentPath(true); > > to my init() method but selenium is still not happy. > Do I have to run wicket it development mode or something to get these > settings to work? > > > D/ > > On Oct 15, 2009, at 11:19 AM, Igor Vaynberg wrote: > >> the only drawback is that it makes your markup longer and that it will >> take slightly more cpu because the page-relative path has to be >> computed for every component on the page. >> >> -igor >> >> On Thu, Oct 15, 2009 at 9:04 AM, Douglas Ferguson >> <doug...@douglasferguson.us> wrote: >>> Is there any drawback to using this in production? >>> >>> >>> On Oct 15, 2009, at 10:53 AM, Igor Vaynberg wrote: >>> >>>> see idebugsettings.setoutputcomponentpath, this will add >>>> wicket:path='component's page relative path' attribute which is >>>> stable >>>> as long as you do not change the hierarchy and can be used for >>>> writing >>>> selenium tests. >>>> >>>> -igor >>>> >>>> On Thu, Oct 15, 2009 at 4:14 AM, Per Lundholm >>>> <per.lundh...@gmail.com> wrote: >>>>> Looks like a patch to make it easier to use Selenium to test your >>>>> webapplication. >>>>> >>>>> Selenium is very fond of id in tags. >>>>> >>>>> /Per >>>>> >>>>> On Thu, Oct 15, 2009 at 9:58 AM, Daniel Frisk <dan...@jalbum.net> >>>>> wrote: >>>>>> Ok, I'm lazy and couldn't decipher that code at a glance. What >>>>>> does it do? >>>>>> >>>>>> // Daniel >>>>>> jalbum.net >>>>>> >>>>>> >>>>>> >>>>>> On 2009-10-15, at 03:09, Douglas Ferguson wrote: >>>>>> >>>>>>> Has anybody seen this: >>>>>>> >>>>>>> http://www.onehippo.org/cms7/integration_testing.html >>>>>>> >>>>>>> Seems like a nice alternative vs. having to set markupIds on all >>>>>>> components. >>>>>>> >>>>>>> Thoughts? >>>>>>> >>>>>>> ............ >>>>>>> >>>>>>> They have a patch for wicket: >>>>>>> >>>>>>>> Index: jdk-1.4/wicket/src/main/java/org/apache/wicket/ >>>>>>>> Session.java >>>>>>>> = >>>>>>>> = >>>>>>>> = >>>>>>>> ================================================================ >>>>>>>> *** jdk-1.4/wicket/src/main/java/org/apache/wicket/Session.java >>>>>>>> (revision 724306) >>>>>>>> --- jdk-1.4/wicket/src/main/java/org/apache/wicket/Session.java >>>>>>>> (working copy) >>>>>>>> *************** >>>>>>>> *** 1475,1478 **** >>>>>>>> --- 1475,1489 ---- >>>>>>>> { >>>>>>>> return sequence++; >>>>>>>> } >>>>>>>> + >>>>>>>> + /** >>>>>>>> + * Retrieves the next available session-unique value for >>>>>>>> the >>>>>>>> supplied Component >>>>>>>> + * >>>>>>>> + * @param component >>>>>>>> + * the component which requests the >>>>>>>> generation of a >>>>>>>> markup identifier >>>>>>>> + * @return session-unique value >>>>>>>> + */ >>>>>>>> + public Object getMarkupId(Component component) { >>>>>>>> + return new Integer(nextSequenceValue()); >>>>>>>> + } >>>>>>>> } >>>>>>>> Index: jdk-1.4/wicket/src/main/java/org/apache/wicket/ >>>>>>>> Component.java >>>>>>>> = >>>>>>>> = >>>>>>>> = >>>>>>>> ================================================================ >>>>>>>> *** jdk-1.4/wicket/src/main/java/org/apache/wicket/ >>>>>>>> Component.java >>>>>>>> (revision 724306) >>>>>>>> --- jdk-1.4/wicket/src/main/java/org/apache/wicket/ >>>>>>>> Component.java >>>>>>>> (working copy) >>>>>>>> *************** >>>>>>>> *** 1426,1437 **** >>>>>>>> return null; >>>>>>>> } >>>>>>>> >>>>>>>> ! final int generatedMarkupId = storedMarkupId >>>>>>>> instanceof >>>>>>>> Integer >>>>>>>> ! ? ((Integer)storedMarkupId).intValue() : >>>>>>>> Session.get >>>>>>>> ().nextSequenceValue(); >>>>>>>> ! >>>>>>>> ! if (storedMarkupId == null) >>>>>>>> ! { >>>>>>>> ! setMarkupIdImpl(new Integer >>>>>>>> (generatedMarkupId)); >>>>>>>> } >>>>>>>> >>>>>>>> // try to read from markup >>>>>>>> --- 1426,1445 ---- >>>>>>>> return null; >>>>>>>> } >>>>>>>> >>>>>>>> ! String markupIdPostfix; >>>>>>>> ! if (!(storedMarkupId instanceof Integer)) { >>>>>>>> ! Object markupIdFromSession = >>>>>>>> Session.get().getMarkupId(this); >>>>>>>> ! if (storedMarkupId == null && >>>>>>>> markupIdFromSession >>>>>>>> != null) { >>>>>>>> ! setMarkupIdImpl >>>>>>>> (markupIdFromSession); >>>>>>>> ! } >>>>>>>> ! storedMarkupId = markupIdFromSession; >>>>>>>> ! } >>>>>>>> ! if (storedMarkupId instanceof Integer) { >>>>>>>> ! markupIdPostfix = Integer.toHexString >>>>>>>> (((Integer) >>>>>>>> storedMarkupId).intValue()).toLowerCase(); >>>>>>>> ! } else if (storedMarkupId instanceof String) { >>>>>>>> ! return (String) storedMarkupId; >>>>>>>> ! } else { >>>>>>>> ! markupIdPostfix = >>>>>>>> storedMarkupId.toString >>>>>>>> (); >>>>>>>> } >>>>>>>> >>>>>>>> // try to read from markup >>>>>>>> *************** >>>>>>>> *** 1449,1455 **** >>>>>>>> markupIdPrefix = getId(); >>>>>>>> } >>>>>>>> >>>>>>>> - String markupIdPostfix = Integer.toHexString >>>>>>>> (generatedMarkupId).toLowerCase(); >>>>>>>> markupIdPostfix = RequestContext.get >>>>>>>> ().encodeMarkupId >>>>>>>> (markupIdPostfix); >>>>>>>> >>>>>>>> String markupId = markupIdPrefix + >>>>>>>> markupIdPostfix; >>>>>>>> --- 1457,1462 ---- >>>>>>> >>>>>>> >>>>>>> Then in their session, they return stable ids >>>>>>> >>>>>>>> private Map<String,Integer> pluginComponentCounters = new >>>>>>>> HashMap<String,Integer>(); >>>>>>>> >>>>>>>> // Do not add the @Override annotation on this >>>>>>>> public Object getMarkupId(Component component) { >>>>>>>> String markupId = null; >>>>>>>> for (Component ancestor=component.getParent(); ancestor! >>>>>>>> =null && markupId==null; ancestor=ancestor.getParent()) { >>>>>>>> if (ancestor instanceof IPlugin || ancestor instanceof >>>>>>>> Home) { >>>>>>>> markupId = ancestor.getMarkupId(true); >>>>>>>> break; >>>>>>>> } >>>>>>>> } >>>>>>>> if (markupId == null) { >>>>>>>> return "root"; >>>>>>>> } >>>>>>>> int componentNum = 0; >>>>>>>> if (pluginComponentCounters.containsKey(markupId)) { >>>>>>>> componentNum = pluginComponentCounters.get >>>>>>>> (markupId).intValue(); >>>>>>>> } >>>>>>>> ++componentNum; >>>>>>>> pluginComponentCounters.put(markupId, new Integer >>>>>>>> (componentNum)); >>>>>>>> return markupId + "_" + componentNum; >>>>>>>> } >>>>>>>> } >>>>>>> >>>>>>> >>>>>>> --------------------------------------------------------------------- >>>>>>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org >>>>>>> For additional commands, e-mail: users-h...@wicket.apache.org >>>>>>> >>>>>> >>>>>> >>>>>> --------------------------------------------------------------------- >>>>>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org >>>>>> For additional commands, e-mail: users-h...@wicket.apache.org >>>>>> >>>>>> >>>>> >>>>> --------------------------------------------------------------------- >>>>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org >>>>> For additional commands, e-mail: users-h...@wicket.apache.org >>>>> >>>>> >>>> >>>> --------------------------------------------------------------------- >>>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org >>>> For additional commands, e-mail: users-h...@wicket.apache.org >>>> >>> >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org >>> For additional commands, e-mail: users-h...@wicket.apache.org >>> >>> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org >> For additional commands, e-mail: users-h...@wicket.apache.org >> > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > For additional commands, e-mail: users-h...@wicket.apache.org > > --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org