如何检查文本中包含selenium中的某个字符

时间:2017-08-30 12:20:14

标签: c# selenium

我在下面有一个检索HTML标记的方法:

    public void CheckEmailDisplayed()
    {
        var email = _driver.FindElement(ConfirmationResponsiveElements.ViewEmail);

    }

ViewEmail如下:

public static By ViewEmail => By.ClassName("confirmation-banner__text");

它对应的HTML是:

<div class="confirmation-banner__text firefinder-match">
<p>
 We've sent an email to
<strong>firstname@xxx.com</strong>
</p>
<p>
</div>

我想要做的是能够使用变量email检查文本是否包含@。这是为了帮助确定显示的电子邮件地址。如何实现这一目标?

谢谢

3 个答案:

答案 0 :(得分:1)

选项1:检查@符号

ani.onStopped

选项2:验证电子邮件地址

        string email = "test@domain.com";
        if (email.Contains("@"))
        {
            // code here
        }

如何使用选项2:

public static bool IsEmail(string emailToValidate)
{
    if (string.IsNullOrEmpty(emailToValidate)) return true;

    return Regex.IsMatch(emailToValidate, @"^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$");
}

答案 1 :(得分:0)

您可以添加其他定义

var divs = Array.from({length:10}) // lets make an array of 10 divs
                .map(function(_,i){
                       var el = document.createElement('div');
                       el.textContent = `I am div # ${i}`;
                       return el;
                     });
document.body.append(...divs);

然后使用

public static By ViewEmailAddress => By.TagName("strong");

然后您可以在var emailAddress = emai.FindElement(ConfirmationResponsiveElements.ViewEmailAddress); var emailAddressText = emailAddress.Text; 上执行您想要的其他操作。就像验证它具有emailAddressText或进行更复杂的验证一样,如电子邮件模式检查

答案 2 :(得分:0)

您可以使用IndexOf方法

bool found = Value1.IndexOf("abc", 0, 7) != -1;

OR

你也可以使用正则表达式(虽然不太可读)

string regex = "^.{0,7}abc";

System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex(regex);
string Value1 = "sssddabcgghh";

Console.WriteLine(reg.Match(Value1).Success);

资料来源: - How to determine if string contains specific substring within the first X characters