Hi , Before few days I had asked questions on Selenium test cases. I had included the email address of Peter Goron in that email. I got excellent reply from him so thought to share with community memeber.
Peter, Thanks for your kind reply. I am sharing the contents of your email on the mailing list.I hope it won't be of any problem for you. I will get back to you with more questions :-) Here is the contents of Peter's reply : --------------------------------------------------------------------------------------------------------------------------- Hi Ashish, My answers are inline.
Dear Peter, Thanks for your kind reply. I was waiting for reponse on this topic. But I thought that you would be busy so didn't ping you again.
> Ashish Vijaywargiya sent the following on 7/15/2007 10:32 AM: > > Hi, > > > > We are trying to prepare selenium test cases on Ofbiz for > client > > demonstration. > > We are facing some issues with those test cases. > > > > 1) For running "successive" test cases I used browser > "Refresh" button > > but I > > think there might be some better option to handle this. > > Is there any option exists in Selenium IDE ??
I'm not sure to understand what you try to do. If you want to chain execution of different tests, there is the notion of test suite. A list of tests to run one after the other (see http://labs.libre-entreprise.org/plugins/scmcvs/cvsweb.php/ofbizNeogia/neogia/manufacturing/webapp/manufacturing/tests/ManufacturingTestSuite.html?rev=1.9;content-type=text%2Fplain;cvsroot=neogia ) Otherwise if you just want to replay the same test in a loop, I'm not aware of a such feature in selenium. Bur if the loop is finite, you can achieve a similar result by using a test suite that refers x times the same test.
> > 2) Suppose I have a condition to create the new user each > time. > > As I can put the value of user login say "user1" for the > first time but > > when > > this test case runs second time it generates error (It hangs > up in > > between). > > So Is there any option to put a "counter" or Javascript code > in the Test > > cases so I could create the "user2" when this test case runs > second time ??
The general problem behind you issue is how to run a test multiple times wihtout risking duplicated primary keys or having to remove all data created by the test. One solution is to always create business objects with different identifiers. Selenium provides a nice feature to do that: you can define variables during the test execution and use them anywhere in the test script after their creation. Here an example based on one of my test ( http://labs.libre-entreprise.org/plugins/scmcvs/cvsweb.php/ofbizNeogia/neogia/manufacturing/webapp/manufacturing/tests/TestCreateNomenclature.html?rev=1.6;content-type=text%2Fplain;cvsroot=neogia ) <!-- create a variable named uid that contains an unique identifier --> <tr> <td>store</td> <td>javascript{(new Date()).getTime() % 10000}</td> <td>uid</td> </tr> <!-- use of the variable named uid to fill a form entry --> <tr> <td>type</td> <td>partyId</td> <td>user-${uid}</td> </tr> - Show quoted text -
> > 3) What is the difference between click and clickAndWait ?? > > I would like to understand why I'm getting different > behaviors from click > > and clickAndWait functions. Here is the scenario: > > I want to perform the login and then verify some text on the > page (what > > should be pretty straight forward...) My first approach was > using the click > > function + pause function. Something like below: > > > > <tr> > > <td>click</td> > > <td>submit</td> > > <td></td> > > </tr> > > > > <tr> > > <td>pause</td> > > <td>3000</td> > > <td></td> > > </tr> > > > > The approach above worked fine and I was able to proceed > with my test. > > However, I was looking the clickAndWait functionality and, > per my > > understanding, this function should have a simlar behavior > to my code > > above.. then I wrote the following: > > > > <tr> > > <td>clickAndWait</td> > > <td>submit</td> > > <td></td> > > </tr> > > > > The code above is getting a "Permission Denied" message. I > already check > > the > > URLs and I'm not launching a different domain (before I > click I have > > http://domain/Login/ and after the submission I have > http://domain/App/).
I think the right solution is to use clickAndWait command instead of click+pause because it always success contrary to click+pause (we dont known the page response time). I see no reason why you don't observe the same behavior with clickAndWait. Maybe it's because your are testing the login page that can be a little tricky to test due to the session handling. To be sure to always start a test in a clean session, my tests always do the same actions : 1. logoff 2. login 3. check error Here, an example of my standard login procedure under selenium from ( http://labs.libre-entreprise.org/plugins/scmcvs/cvsweb.php/ofbizNeogia/neogia/manufacturing/webapp/manufacturing/tests/TestProcessRouting.html?rev=1.2;content-type=text%2Fplain;cvsroot=neogia ) <!-- Begin of standard login procedure --> <tr> <td>open</td> <td>/manufacturing/control/logout</td> <td></td> </tr> <tr> <td>type</td> <td>USERNAME</td> <td>admin</td> </tr> <tr> <td>type</td> <td>PASSWORD</td> <td>ofbiz</td> </tr> <tr> <td>select</td> <td>locale</td> <td>value=fr</td> </tr> <tr> <td>clickAndWait</td> <td>submitButton</td> <td></td> </tr> <tr> <td>assertElementNotPresent</td> <td>//[EMAIL PROTECTED]'errorMessage']</td> <td></td> </tr> <!-- End of standard login procedure --> Best regards, Peter Goron -------------------------------------------------------- On 7/15/07, Ashish Vijaywargiya <[EMAIL PROTECTED]> wrote:
Hi, We are trying to prepare selenium test cases on Ofbiz for client demonstration. We are facing some issues with those test cases. 1) For running "successive" test cases I used browser "Refresh" button but I think there might be some better option to handle this. Is there any option exists in Selenium IDE ?? 2) Suppose I have a condition to create the new user each time. As I can put the value of user login say "user1" for the first time but when this test case runs second time it generates error (It hangs up in between). So Is there any option to put a "counter" or Javascript code in the Test cases so I could create the "user2" when this test case runs second time ?? 3) What is the difference between click and clickAndWait ?? I would like to understand why I'm getting different behaviors from click and clickAndWait functions. Here is the scenario: I want to perform the login and then verify some text on the page (what should be pretty straight forward...) My first approach was using the click function + pause function. Something like below: <tr> <td>click</td> <td>submit</td> <td></td> </tr> <tr> <td>pause</td> <td>3000</td> <td></td> </tr> The approach above worked fine and I was able to proceed with my test. However, I was looking the clickAndWait functionality and, per my understanding, this function should have a simlar behavior to my code above.. then I wrote the following: <tr> <td>clickAndWait</td> <td>submit</td> <td></td> </tr> The code above is getting a "Permission Denied" message. I already check the URLs and I'm not launching a different domain (before I click I have http://domain/Login/ and after the submission I have http://domain/App/). I know that so many persons are using Selenium IDE since very long. I am also looking at Selenium Forum for help but early help from Ofbiz community members would be greatly appreciated. -- Thanks & Regards Ashish Vijaywargiya Indore , India
-- Thanks & Regards Ashish Vijaywargiya Indore, India
