【问题标题】:Text Contains two different strings? WebDriver C# [closed]Text 包含两个不同的字符串? WebDriver C# [关闭]
【发布时间】:2018-03-02 11:58:00
【问题描述】:

我试图断言两个或多个字符串是否明显。我的代码目前只寻找“好”。有没有办法寻找“好”或“坏”?

    public class Test
{
    public static bool FindText()
    {
        var conf = Driver.Instance.FindElement(By.Id("foo"));

        if (conf.Text.Contains("Good"))
        {
            return true;
        }
        throw new Exception("Text not found");
    }
}

【问题讨论】:

  • 您是在认真询问 or 条件在 C# 中是如何工作的,还是我遗漏了什么?
  • 请在提问前做一些研究

标签: c# selenium-webdriver contains assert


【解决方案1】:

我会使用 System.Linq 并检查数组的所有元素,如果可能有两个以上的有效字符串。

public class Test
{
  public static bool FindText()
  {
    var stringsToFind = new [] { "Good", "Bad" };

    var conf = Driver.Instance.FindElement(By.Id("foo"));

    if (stringsToFind.Any(s => conf.Text.Contains(s))
    {
        return true;
    }

    throw new Exception("Text not found");
  }
}

对于只有两个要检查的元素,我可能会用第二个条件和or 扩展 if 条件。

【讨论】:

  • 谢谢,这真的很有帮助。
【解决方案2】:

尝试查找字符串时,始终将字符串变量设置为大写或小写。由于区分大小写,当文本为“GoOd”时,您将找不到匹配“Good”的匹配项

if(conf.Text.ToUpper().Contains("GOOD")){
//do something
}
else if(conf.Text.ToUpper().Contains("BAD")){
//do something else
}

你也可以只在一个“if”语句中加入 then,如果你只想通过使用找出是否有这些语句

if(conf.Text.ToUpper().Contains("GOOD") || conf.Text.ToUpper().Contains("BAD")){
//do something for both cases
}

【讨论】:

    【解决方案3】:

    ||是 OR 运算的运算符

     if (conf.Text.Contains("Good") || conf.Text.Contains("Bad"))
    

    PD:停止你正在做的任何事情,看看语言文档,你需要了解你在做什么。

    【讨论】:

    • 谢谢。这无疑是一个菜鸟问题,但我对此并不陌生。
    • 每个人在某些时候都是新人!但你要跳到一个你需要事先知道的地方,所以你可以轻松运行:)
    猜你喜欢
    • 1970-01-01
    • 2013-12-20
    • 2016-01-30
    • 1970-01-01
    • 2018-07-04
    • 1970-01-01
    • 1970-01-01
    • 2015-03-30
    • 2019-03-31
    相关资源
    最近更新 更多