检查java

时间:2015-08-03 07:08:36

标签: java webdriver testng appium

我使用java编写Appium测试脚本&现在我想比较两封电子邮件,但在比较之前我必须通过拆分字符串从文本中获取电子邮件ID。 例如:我的申请表中有这样的文字“您的帐户电子邮件与pankaj@gmail.com相关联”所以我想要拆分&仅从此文本&中捕获此电子邮件ID将其与文本框中显示的其他电子邮件ID进行比较。 我怎样才能做到这一点 ?? 目前我这样做:

WebElement email_id= driver.findElement(By.xpath("//UIAApplication[1]/UIAWindow[1]/UIATextField[1]"));

String edit_email=email_id.getText();

System.out.println(edit_email);

但是获得全文。我怎么能分开它。

5 个答案:

答案 0 :(得分:2)

您应该使用java.util.regex.Patternjava.util.regex.Matcher尝试正则表达式。我准备了一个代码片段,可以从给定的文本块中找到电子邮件ID。

    String text = "your account email associated with pankaj@gmail.com and he has emailed someone@gmail.com.";
    Pattern pattern = Pattern.compile("[\\w]+[\\d\\w]*(@)[\\w]+[\\w\\d]*(\\.)[\\w]+");
    Matcher matcher = pattern.matcher(text);
    while(matcher.find()){
        System.out.println(matcher.group());
    }

这应该有所帮助。

答案 1 :(得分:0)

这对我来说很有用:

    String s = "your account email associated with pankaj@gmail.com";
    s = s.replaceAll("^.+\\s", "");
    System.out.println(s);

答案 2 :(得分:0)

如果您确定要分割的文本是标准格式(或具有不同电子邮件ID的某些静态内容),则可以使用正则表达式来解析和检索电子邮件地址,如Nitheesh Shah和dotvav中所述。他们的答案。

否则,您必须按照以下主题中提到的几个RFC来完美地检索和验证电子邮件地址(请参阅下面主题顶部显示的最佳答案)。

Using a regular expression to validate an email address

答案 3 :(得分:0)

正如OP提到的那样,它将仅以电子邮件ID结尾,另一种解决方案可以是:

WebElement email_id= driver.findElement(By.xpath("//UIAApplication[1]/UIAWindow[1]/UIATextField[1]"));
String s[] = email_id.getText().split(" ");
System.out.println(s[s.length-1]);

获取电子邮件ID后,您可以将其与文本框中的其他电子邮件进行比较。

答案 4 :(得分:0)

目前我正在使用这个&它完美地为我工作。实现解决方案是在主字符串中找到特定的电子邮件子字符串。

String word = edit_email;

String com_txt= email_text; //Edit page Static string

Boolean same_txt =com_txt.contains(word);

Boolean result=same_txt;

if(result==true)

    {

System.out.println(result);

System.out.println("Edit screen & enter email screen contains the              same email");


    }

这是执行比较的正确方法吗?