【问题标题】:C# Selenium, how to check that text exists on page <div>C# Selenium,如何检查页面 <div> 上是否存在文本
【发布时间】:2016-08-23 11:41:24
【问题描述】:

我想知道是否有人知道检查页面上是否存在文本的方法,我尝试了一些解决方案,但遗憾的是无济于事。

<div style="display:inline-block;vertical-align:top">
    text I want to find<br>
    more text I want to find<br>                        
</div>

我如何确认/断言它存在?我假设涉及TagName?但是我不确定,我处于一个非常好的世界水平。

感谢您的帮助。

【问题讨论】:

  • 您想查找带有任何文本或特定文本的元素还是验证元素是否有一些文本??
  • 如果没有任何示例代码或更大的 html 示例,很难提出实现此目标的最佳方法,但查看定位器将是您的最佳起点selenium locators
  • 我基本上收到了 Cosmin 的回答,但是如果你不介意往下看,我还有几个问题,我需要我能得到的所有帮助 :)

标签: c# selenium testing automation


【解决方案1】:

您的 div 标记中似乎存在文本,因此您可以这样做:

var element = driver.FindElement(By.Xpath("your_xpath"));
if(!string.IsNullOrEmpty(element.Text))
{
    //the text is present
    //do your stuff here
}

编辑以澄清评论中的问题: string.IsNullOrEmpty 将返回一个布尔值:true 如果文本没有值(null 或空),false 如果文本值中有字符串字符。这也包括空格,所以如果你想确保你没有只有空格的文本,你也可以使用string.IsNullOrWhitespace(),这是比前一个更深入的检查。 因此,通过使用!(不是运算符)来反转它,您基本上是在说如果您的文本值中有某些内容,请执行其他操作。

现在,要断言文本确实是正确的,请使用IWebElement 接口的Text 属性,该属性包含html 标记的开始和结束之间的文本值。 在代码中,这将转化为:

//exact text
var element = driver.FindElement(By.Xpath("your_xpath"));
if(!string.IsNullOrEmpty(element.Text) && element.Text == "your_text") 
{
    //the text is present
    //do your stuff here
}

//partial text
var element = driver.FindElement(By.Xpath("your_xpath"));
if(!string.IsNullOrEmpty(element.Text) && element.Text.Contains("your_text"))
{
    //the text is present
    //do your stuff here
}

您需要保留if 语句中的顺序,因为如果文本值为null,当您在其上应用Contains() 时,它将导致Object reference exception.

【讨论】:

  • 感谢您的帮助,我可以确认这确实有效。我有几个问题:一个是更多的澄清 - '!'在字符串之前基本上意味着'不是'?说我拿'!离开它会期望它是空的,或者不存在,但是我基本上是在扭转它吗? (我正在学习所有这些并希望完全理解)。其次,无论如何要确认文本是否是我想要/需要的文本,理想情况下我可以选择其中的一部分并验证它是否存在。再次感谢您的宝贵时间!
  • 更新了答案。
  • 我要感谢您的深入解释,作为一个不仅是自动化的新手,而且一般测试这有助于我理解这个语句是如何工作的,我将能够做到加载更多自动化!
  • 你好,另一个问题,我只是用这个元素做的,我不能让它通过循环,它似乎通过了,但它没有做我要求它做的事情它确实通过的情况是关闭浏览器,所以我假设它没有通过循环。 xpath //*[@id="feedbackMessage"]
  • 你好,没关系,它正在立即执行语句,这意味着它不起作用,我只是在使用 System.Threading.Thread.Sleep(5000); 时延迟了 5 秒;
猜你喜欢
  • 2012-07-12
  • 1970-01-01
  • 2021-04-27
  • 2019-08-22
  • 1970-01-01
  • 1970-01-01
  • 2019-08-03
  • 1970-01-01
  • 2012-03-28
相关资源
最近更新 更多