Hi Jian,

All of my tests are now working. Thanks very much for your help. I
increased the pause to 1000. I removed the getAttribute call since I'd
replaced it with the isChecked call which was working.

For my ajax html elements that have to be clicked, I have to first
call disableTelluriumEngine() otherwise the TextBox won't click and
then I can't update the value. Similarly, for the checkboxes, I have
to disable the TelluriumEngine or not all of the checkboxes will be
checked (they're also updated via ajax).

Since the getTelluriumEngine was off, I couldn't call getValue on the
InputBox so I called getText() method instead and that worked.

Thanks again for all of your work on tellurium!

Jade

On Sep 10, 11:08 am, Jian Fang <[email protected]> wrote:
> So, do you still have problem to get back the value? Try to increase the
> pause value to see
> if it helps more. The bad thing is that it makes your tests slow.
>
> Thanks,
>
> Jian
>
> On Fri, Sep 10, 2010 at 11:58 AM, Jade <[email protected]> wrote:
> > Hi Jian,
>
> > I did change my pause from 500 to 1000, and that helped some. The
> > waitForCondition sometimes seems to take a very long time so I've been
> > avoiding using it.
>
> > Jade
>
> > On Sep 9, 4:08 pm, Jian Fang <[email protected]> wrote:
> > > Thanks for the details.
>
> > > The click did not work even for the latest snapshot from last night? That
> > is
> > > really wired.
>
> > > If you turn off the Engine, the getValue is called on Selenium APIs. I
> > > wonder if your problem is caused by
> > > the fact that you could not get back the correct value right away since
> > it
> > > takes some time
> > > for the value to be changed after the click event. Have you ever tried to
> > > add some delay such as
>
> > > pause(1000)
>
> > > in the command or try some waitForCondition() command?
>
> > > Thanks,
>
> > > Jian
>
> > > On Thu, Sep 9, 2010 at 4:53 PM, Jade <[email protected]> wrote:
> > > > Hi Jian,
>
> > > > The previous error was due to the selenium engine not finding the html
> > > > element. I changed the module definition to fix that problem.
>
> > > > I had to turn the tellurium engine off otherwise the test wouldn't
> > > > modify the value since the click method didn't cause the UI to click
> > > > on the item, thus it wasn't selected and these lines didn't do
> > > > anything:
>
> > > > if (value.isEmpty()) {
> > > >                                        module.type(inputUid, " ");
> > > >                                } else {
> > > >                                        module.type(inputUid, value);
> > > >                                }
>
> > > > Here's my method to test changing values on clickable text fields:
>
> > > > public static void testEditingClickableField(final String textUid,
> > > > final String inputUid, final String value,
> > > >        final DslContext module, final boolean isValid) {
>
> > > >                log.info "testEditingClickableField ${textUid}"
> > > >                // If not disabled, value won't change b/c element won't
> > be
> > > > clicked.
> > > >                module.disableTelluriumEngine()
>
> > > >                String originalText = module.getText(textUid);  //
> > getValue
> > > > is only
> > > > valid if value= is viewable in the html
> > > >                // such as <input
> > > > id="aspect_vireo_admin_View_field_firstName"
> > > > class="ds-text-field firstName editable" name="firstName" type="text"
> > > > value="New First Name" />
> > > >                // in the code, the value is often not set.
>
> > > >                if (!originalText.equals(value)) {
>
> > > >                        // If the value is blank, then Vireo sometimes
> > > > displays none.
> > > >                        final String NONE = "none"
>
> > > >                        boolean successful = false;
> > > >                        int maxTries = 5;
> > > >                        int tries = 0;
>
> > > >                        String currentTextValue
> > > >                        String currentInputTextValue
>
> > > >                        // Due to ajax timing issues, try more than once
> > to
> > > > perform this
> > > > action.
> > > >                        while (!successful && tries++ < maxTries) {
> > > >                                // click on the textUid to trigger the
> > ajax
> > > > / javascript to allow
> > > > the value to be changed.
> > > >                                clickFakeItem(textUid, inputUid, module,
> > > > true)
>
> > > >                                if (value.isEmpty()) {
> > > >                                        module.type(inputUid, " ");
> > > >                                } else {
> > > >                                        module.type(inputUid, value);
> > > >                                }
>
> > > >  module.pause(VireoTestConfig.getPauseTime());
> > > >                                currentTextValue =
> > module.getText(textUid)
> > > >                                //clickFakeItem(textUid, inputUid,
> > module,
> > > > true)
> > > >                                module.mouseOut textUid
>
> > > >                                log.info "try ${tries}:
> > > > testEditingClickableField
> > > > currentTextValue: ${currentTextValue} newValue: ${value} origText: $
> > > > {originalText}"
>
> > > >                                if (isValid) {
> > > >                                        if ((value.isEmpty() &&
> > > > currentTextValue.equals(NONE)) ||
> > > > currentTextValue.equals(value)) {
> > > >                                                successful = true
> > > >                                        }
> > > >                                } else {
> > > >                                        if
> > > > (currentTextValue.equals(originalText)) {
> > > >                                                successful = true
> > > >                                        }
> > > >                                }
> > > >                        }
>
> > > >                        if (isValid) {
>
> > > >                                if ((value.isEmpty() &&
> > > > (!(currentTextValue.equals(NONE) ||
> > > > currentTextValue.isEmpty()))) ||
> > > >                                (!value.isEmpty() &&
> > > > !currentTextValue.equals(value))) {
> > > >                                        log.error("${textUid} wasn't
> > updated
> > > > to ${value} or ${NONE}. Its
> > > > current text is ${currentTextValue}")
> > > >                                }
> > > >                        } else {
> > > >                                if
> > (!originalText.equals(currentTextValue))
> > > > {
> > > >                                        log.error("${textUid} shouldn't
> > have
> > > > been updated to ${value} or $
> > > > {NONE}. originalValue: ${originalText}, currentText: $
> > > > {currentTextValue}")
> > > >                                }
> > > >                        }
> > > >                }
> > > >                module.enableTelluriumEngine()
> > > >        }
>
> > > > and my module def:
>
> > > > String postAction = "\"${VireoTestConfig.getWebApp()}/vireo/admin/
> > > > detail?update=true\""
>
> > > >        public void defineModule() {
>
> > > >                ui.Form(uid: "DegreeInformationForm", clocator: [tag:
> > > > "form",
> > > > method: "post", action: "${postAction}", class: "ds-interactive-div
> > > > view-form", id: "aspect_vireo_admin_View_div_view-form"]) {
>
> > > >                        TextBox(uid: "committee_member_2", clocator:
> > [tag:
> > > > "span", class:
> > > > "group-committee-", id: "aspect_vireo_admin_View_field_committee-
> > > > member-2"], respond: ["click"])
> > > >                        TextBox(uid: "committee_member_1", clocator:
> > [tag:
> > > > "span", class:
> > > > "group-committee-", id: "aspect_vireo_admin_View_field_committee-
> > > > member-1"], respond: ["click"])
> > > >                        TextBox(uid: "school", clocator: [tag: "span",
> > id:
> > > > "aspect_vireo_admin_View_field_school", type: "text"], respond:
> > > > ["click"])
>
> > > >                        Selector(uid: "degree", clocator: [id:
> > > > "aspect_vireo_admin_View_field_degree"], respond: ["click"])
>
> > > >                        TextBox(uid: "committee_email", clocator: [tag:
> > > > "span", class:
> > > > "committee-email", id: "aspect_vireo_admin_View_field_committee-
> > > > email"], respond: ["click"])
>
> > > >                        TextBox(uid: "department", clocator: [tag:
> > "span",
> > > > id:
> > > > "aspect_vireo_admin_View_field_department", type: "text"], respond:
> > > > ["click"])
>
> > > >                        Selector(uid: "college", clocator: [id:
> > > > "aspect_vireo_admin_View_field_college"], respond: ["click"])
> > > >                        Selector(uid: "degreeLevel", clocator: [id:
> > > > "aspect_vireo_admin_View_field_degreeLevel"], respond: ["click"])
>
> > > >                        TextBox(uid: "committee_member_3", clocator:
> > [tag:
> > > > "span", class:
> > > > "group-committee-", id: "aspect_vireo_admin_View_field_committee-
> > > > member-3", type: "text"], respond: ["click"])
> > > >                        TextBox(uid: "discipline", clocator: [tag:
> > "span",
> > > > id:
> > > > "aspect_vireo_admin_View_field_discipline", type: "text"], respond:
> > > > ["click"])
> > > >                        TextBox(uid: "semester", clocator: [tag: "span",
> > id:
> > > > "aspect_vireo_admin_View_field_semester", type: "text"], respond:
> > > > ["click"])
> > > >                }
>
> > > >                //Since ajax changes the html when a list is clicked,
> > this
> > > > module is
> > > > required to represent clickable lists once they've been clicked.
> > > >                //  For more information, see:
>
> > > >http://groups.google.com/group/tellurium-users/browse_thread/thread/9.
> > ..
> > > >                //
> > > >                ui.Form(uid: "DegreeInformationClickedForm", clocator:
> > [tag:
> > > > "form",
> > > > method: "post", action: "${postAction}", class: "ds-interactive-div
> > > > view-form", id: "aspect_vireo_admin_View_div_view-form"]) {
>
> > > >                        Selector(uid: "degreeSelector", clocator: [id:
> > > > "aspect_vireo_admin_View_field_degree"], respond: ["click"])
> > > >                        Selector(uid: "collegeSelector", clocator: [id:
> > > > "aspect_vireo_admin_View_field_college"], respond: ["click"])
> > > >                        Selector(uid: "degreeLevelSelector", clocator:
> > [id:
> > > > "aspect_vireo_admin_View_field_degreeLevel"], respond: ["click"])
>
> > > >                        InputBox(uid: "committee_emailClicked",
> > clocator:
> > > > [tag: "input",
> > > > id: "aspect_vireo_admin_View_field_committee-email", type: "text"],
> > > > respond: ["click"])
> > > >                        InputBox(uid: "committee_member_2Clicked",
> > clocator:
> > > > [tag: "input",
> > > > id: "aspect_vireo_admin_View_field_committee-member-2", type: "text"],
> > > > respond: ["click"])
> > > >                        InputBox(uid: "committee_member_1Clicked",
> > clocator:
>
> ...
>
> 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.

Reply via email to