Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Generate random emails with Selenium

Tags:

java

selenium

How can I generate random emails using Selenium with Java?

I was looking here in StackOverflow but I haven't found the answer to this.
I have tried with this, but it didn't help.

public class registerClass{
     
    public static void main(String[] args) {
    System.setProperty("webdriver.firefox.marionette","C:\\geckodriver.exe");
        WebDriver driver = new FirefoxDriver();
        
       String baseUrl = " ";
       
       driver.get(baseUrl);
       driver.manage().window().maximize();
       driver.findElement(By.id("cboxClose")).click();
       driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
       driver.findElement(By.id("login")).click();
       driver.findElement(By.xpath("/html/body/div[2]/div[1]/div/div[1]/div[2]/a[1]")).click();
       driver.findElement(By.id("register.firstName")).sendKeys("Karla");
       driver.findElement(By.id("register.paternalLastName")).sendKeys("Perez");
       driver.findElement(By.id("register.maternalLastName")).sendKeys("castro");
      
       driver.findElement(By.id("register.email")).sendKeys("[email protected]");
     
       //driver.close();
       
    }
    
}
like image 243
karlaA Avatar asked Mar 09 '26 20:03

karlaA


2 Answers

You need random string generator. This answer I stole from here.

protected String getSaltString() {
        String SALTCHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
        StringBuilder salt = new StringBuilder();
        Random rnd = new Random();
        while (salt.length() < 10) { // length of the random string.
            int index = (int) (rnd.nextFloat() * SALTCHARS.length());
            salt.append(SALTCHARS.charAt(index));
        }
        return salt.toString();

    }

Call it as getSaltString()+"@gmail.com" in you code

like image 129
a_a Avatar answered Mar 11 '26 09:03

a_a


You can create a method for generating the unique id

 public static String getUniqueId() {
            return String.format("%s_%s", UUID.randomUUID().toString().substring(0, 5), System.currentTimeMillis() / 1000);
        }

And then use this method with the hostname which you need

 public static String generateRandomEmail() {
        return String.format("%s@%s", getUniqueId(), "yourHostName.com");
    }

Another solution:

Add dependency for javafaker.Faker https://github.com/DiUS/java-faker

import com.github.javafaker.Faker;

public static String randomEmail() {
      Faker faker = new Faker();
      return faker.internet().emailAddress();
    }
like image 24
Norayr Sargsyan Avatar answered Mar 11 '26 09:03

Norayr Sargsyan



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!