Glad your tests work now. We will fix all the problems you reported and please keep trying the new Engine, which is the only way to evolve it.
Thanks, Jian On Fri, Sep 10, 2010 at 3:17 PM, Jade <[email protected]> wrote: > 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]<tellurium-users%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/tellurium-users?hl=en. > > -- 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.
