1

I would like to get a random element on my code. For example i have 4 elements on my code in JAVA. I trying to get second element and start run program on this place. Another time when I start my program would be a one element. How do i get this?

        first element :

    while ( true ) {

         driver.get( "example_of_page" );
            WebElement formEmail = driver.findElement(By.name("email"));
            formEmail.sendKeys(Email1);
            WebElement formPassword = driver.findElement(By.name("pass"));
        formPassword.sendKeys(Password2);
        WebElement formRemember = driver.findElement(By.name("persistent"));
        formRemember.sendKeys(" ");
        formPassword.submit();

        second element :


        driver.get("example_of_page");
        WebElement formEmail = driver.findElement(By.name("email"));
        formEmail.sendKeys(Email2);
        WebElement formPassword = driver.findElement(By.name("password"));
        formPassword.sendKeys(Password2);
        WebElement formRemember = driver.findElement(By.name("remember"));
        formRemember.sendKeys(" ");
        WebElement formSubmit = driver.findElement(By.name("login_button"));
        formSubmit.click();

    the third element :

     driver.get("example_of_page");
        WebElement formEmail = driver.findElement(By.name("email"));
        formEmail.sendKeys(Email3);
        WebElement formPassword = driver.findElement(By.name("password"));
        formPassword.sendKeys(Password3);
        WebElement formRemember = driver.findElement(By.name("remember"));
        formRemember.sendKeys(" ");
        WebElement formSubmit = driver.findElement(By.name("login_button"));
        formSubmit.click();

    the fourth  element :

      driver.get( "example_of_page" );
            WebElement formEmail = driver.findElement(By.name("email"));
            formEmail.sendKeys(Email4);
            WebElement formPassword = driver.findElement(By.name("pass"));
        formPassword.sendKeys(Password4);
        WebElement formRemember = driver.findElement(By.name("persistent"));
        formRemember.sendKeys(" ");
        formPassword.submit();

}

How i can named, define this element in loop to run random element and start code from this place ? I use loop on this function, element and this element must not repeated on one loop.

Samantha.G
  • 21
  • 6
  • possible duplicate of [How to get a random element in code in JAVA?](http://stackoverflow.com/questions/32162989/how-to-get-a-random-element-in-code-in-java) – pjs Aug 23 '15 at 19:47
  • Is this all done on the same form on the same page? In 2 cases you have name = "pass" and the other 2 are name = "password"... are they really different elements? Why are you using `.submit()` on a password field? Are you using `.sendKeys(" ")` to click a checkbox? – JeffC Aug 23 '15 at 21:09
  • Whatever method/answer you choose... make sure that you write something to the log the indicates what login method you used so that you can reference it later if something fails. – JeffC Aug 23 '15 at 21:16

2 Answers2

0

You can use Random function to get a Random value have a look

http://www.javapractices.com/topic/TopicAction.do?Id=62

0

One of the possible approach is: Use a switch-case block inside your while loop, with a random number generator. Switch should be performed on a local variable, and this variable must be assigned a random value in the beginning of each iteration of your while loop. The random number should be between 0 and n-1, where n is the number of elements.

Something like this :

public static void main(String[] args) {
    //nubmer elements
    int n = 10;

    while(true){
           int switchToElement = getRandomNumber(n);
           switch(switchToElement) {
           case 0:
               //perform logic related to first element
               break;
           case 1:
               //perform logic related to second element
               break;
            // other cases..

            default:
                //should never reach this line unless there is a problem in your getRandomNumber
           }
        }
}

private static int getRandomNumber(int n) {
    // write logic to generate random number between 0 and n 

}
Tarun Gupta
  • 1,629
  • 1
  • 22
  • 39
  • How i can use switch case block? I don't know how connect together. – Samantha.G Aug 23 '15 at 11:29
  • Added a sample code snippet to give you an idea on how to use switch case block in this scenerio. – Tarun Gupta Aug 23 '15 at 11:39
  • n in this case should be 3. Read [this link](http://stackoverflow.com/a/363692/2386774) to get some code for random number generation in a range. – JeffC Aug 23 '15 at 21:15
  • Thank you this is very useful ;) but how i can do to not repeats the same element on one time loop ? I must make unique for each loop on element. – Samantha.G Aug 24 '15 at 02:08
  • Not sure If I understood your question correctly, but the 'break' statement will enable you to execute the code only for one element per iteration. Is that what you were asking. – Tarun Gupta Aug 24 '15 at 03:24