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/994b889df6140bc1/5529f3dd9607fbec#5529f3dd9607fbec
>                //
>                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:
> [tag: "input",
> id: "aspect_vireo_admin_View_field_committee-member-1", type: "text"],
> respond: ["click"])
>                        InputBox(uid: "committee_member_3Clicked", clocator:
> [tag: "input",
> id: "aspect_vireo_admin_View_field_committee-member-3", type: "text"],
> respond: ["click"])
>
>                        InputBox(uid: "schoolClicked", clocator: [tag:
> "input", id:
> "aspect_vireo_admin_View_field_school", type: "text"], respond:
> ["click"])
>                        InputBox(uid: "disciplineClicked", clocator: [tag:
> "input", id:
> "aspect_vireo_admin_View_field_discipline", type: "text"], respond:
> ["click"])
>                        InputBox(uid: "semesterClicked", clocator: [tag:
> "input", id:
> "aspect_vireo_admin_View_field_semester", type: "text"], respond:
> ["click"])
>                        InputBox(uid: "departmentClicked", clocator: [tag:
> "input", id:
> "aspect_vireo_admin_View_field_department", type: "text"], respond:
> ["click"])
>                }
>
> and my data input file:
>
> verifyModule|1
>
> ## Format of test data for edit_ tests where textboxes are edited.
> ## testName | dataField |submissionId | name | is valid data?
> edit_committee_email|1||true
> edit_committee_email|1|new value|true
> edit_committee_email|1|9|true
> edit_school|1||true
> edit_school|1|new value|true
> edit_school|1|9|true
> edit_committee_member_2|1||true
> edit_committee_member_2|1|new value|true
> edit_committee_member_2|1|9|true
> edit_department|1||false
> edit_department|1|new value|true
> edit_department|1|9|true
> edit_committee_member_1|1||true
> edit_committee_member_1|1|new value|true
> edit_committee_member_1|1|9|true
> edit_committee_member_3|1||true
> edit_committee_member_3|1|new value|true
> edit_committee_member_3|1|9|true
> edit_discipline|1||false
> edit_discipline|1|new value|true
> edit_discipline|1|9|true
> edit_semester|1||true
> edit_semester|1|new value|true
> edit_semester|1|9|true
>
> ## Format of test data for test_ tests where items are selected from
> lists.
> ## testName | submissionId | indexToTest or -1 if test all |
> firstValidIndex | shouldTestFail?
> test_degree|1|-1|1|false
> test_degree|1|1|1|false
> test_college|1|-1|1|false
> test_college|1|1|1|false
> test_degreeLevel|1|-1|1|true
> test_degreeLevel|1|1|1|true
>
> Jade
>
>

-- 
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