生成随机电子邮件

时间:2017-08-23 13:44:34

标签: java selenium

你能帮我吗? 如何使用Selenium with Java生成随机电子邮件? ?

我在stackoverflow中看到这里,但我还没有找到答案。 我试过这个,但它没有帮助

7 个答案:

答案 0 :(得分:3)

您需要随机字符串生成器。我从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));
        }
        String saltStr = salt.toString();
        return saltStr;

    }

在您的代码中将其称为getSaltString()+"@gmail.com"

答案 1 :(得分:2)

您也可以使用MockNeat。这个库就是一个简单的例子:

String email = mock.emails().val();
// Possible Output: icedvida@yahoo.com

或者,如果您想要生成来自特定域的电子邮件:

String corpEmail = mock.emails().domain("startup.io").val();
// Possible Output: tiptoplunge@startup.io

答案 2 :(得分:1)

这是我为随机电子邮件生成器提供的解决方案。

 //randomestring() will return string of 8 chars

  import org.apache.commons.lang3.RandomStringUtils;

  public String randomestring()
  {
    String generatedstring=RandomStringUtils.randomAlphabetic(8);
    return(generatedstring);
   }


  //Usage
   String email=randomestring()+"@gmail.com";

 //For Random Number generation 
////randomeNum() will return string of 4 digits

   public static String randomeNum() {
        String generatedString2 = RandomStringUtils.randomNumeric(4);
        return (generatedString2);
     }

答案 3 :(得分:0)

如果您不介意添加库,Generex非常适合测试数据。 https://github.com/mifmif/Generex

如果您使用的是maven,请将其添加到您的pom.xml中,否则请查看上面的链接以获取其他选项。

    <dependency>
        <groupId>com.github.mifmif</groupId>
        <artifactId>generex</artifactId>
        <version>1.0.2</version>
    </dependency>

然后:

// we have to escape @ for some reason, otherwise we get StackOverflowError
String regex = "\\w{10}\\@gmail\\.com"
driver.findElement(By.id("emailAddressInput"))
           .sendText(new Generex(regex).random());

它使用正则表达式指定随机生成的格式。上面的正则表达式生成10个随机单词字符,附加@ gmail.com。如果您想要更长的用户名,请更改数字10。

如果你想为津巴布韦(我住的地方)生成一个随机手机号码:

String regex = "2637(1|3|7|8)\\d{7}";

这个图书馆为我节省了这么多时间。

答案 4 :(得分:0)

试试这个方法

/**
 * @author mbn
 * @Date 05/10/2018
 * @Purpose This method will generate a random integer
 * @param length --> the length of the random emails we want to generate
 * @return method will return a random email String
 */
public static String generateRandomEmail(int length) {
    log.info("Generating a Random email String");
    String allowedChars = "abcdefghijklmnopqrstuvwxyz" + "1234567890" + "_-.";
    String email = "";
    String temp = RandomStringUtils.random(length, allowedChars);
    email = temp.substring(0, temp.length() - 9) + "@testdata.com";
    return email;
}

答案 5 :(得分:0)

这是在Kotlin中进行的一种方式:

object EmailGenerator {
    private const val ALLOWED_CHARS = "abcdefghijklmnopqrstuvwxyz" + "1234567890" + "_-."

    @Suppress("SpellCheckingInspection")
    fun generateRandomEmail(@IntRange(from = 1) localEmailLength: Int, host: String = "gmail.com"): String {
        val firstLetter = RandomStringUtils.random(1, 'a'.toInt(), 'z'.toInt(), false, false)
        val temp = if (localEmailLength == 1) "" else RandomStringUtils.random(localEmailLength - 1, ALLOWED_CHARS)
        return "$firstLetter$temp@$host"
    }
}

成绩文件:

// https://mvnrepository.com/artifact/org.apache.commons/commons-lang3
implementation 'org.apache.commons:commons-lang3:3.7'

答案 6 :(得分:0)

您可以创建一种生成唯一ID的方法

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

然后将此方法与所需的主机名一起使用

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

另一种解决方案:

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();
    }