2 Replies Latest reply: Aug 11, 2008 10:28 AM by Peter Treitler RSS

    Changing values of HtmlSelect components

    Peter Treitler Newbie

      I need to change the value of a dropdown menu (t:selectOneMenu) in my application.
      I have built JSFUnit from the latest svn version and I am using the classes from the jsfunit package instead of the facade classes.
      When I try to use the setValue method of JSFClientSession I get the following exception:

      java.lang.IllegalArgumentException: This method can not be used on components of type com.gargoylesoftware.htmlunit.html.HtmlSelect
      at org.jboss.jsfunit.jsfsession.JSFClientSession.setValue(JSFClientSession.java:156)

      Is there another way to do this?

        • 1. Re: Changing values of HtmlSelect components
          Brian Gregory Newbie

          One way is to click() the selectitem if they are declared:

           <h:selectOneMenu id="Weekdays">
           <f:selectItem id="selectMonday" itemValue="Monday"/>
           <f:selectItem id="selectTuesday" itemValue="Tuesday"/>
           <f:selectItem id="selectWednesday" itemValue="Wednesday"/>
           <f:selectItem id="selectThursday" itemValue="Thursday"/>
           <f:selectItem id="selectFriday" itemValue="Friday"/>
           <f:selectItem id="selectSaturday" itemValue="Saturday"/>

           JSFSession jsfSession = new JSFSession("/indexWithExtraComponents.faces");
           JSFClientSession client = jsfSession.getJSFClientSession();
           JSFServerSession server = jsfSession.getJSFServerSession();

          Another way if you don't have declared selectItems is to find the selectitem from the select control and click it directly:

           HtmlSelect htmlSelect = (HtmlSelect)client.getElement(controlId);
           HtmlOption htmlOption = htmlSelect.getOptionByValue(value);

          • 2. Re: Changing values of HtmlSelect components
            Peter Treitler Newbie

            Yes, that works. Thanks a lot!