Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#Selenium,如何检查页面上是否存在文本<;部门>;_C#_Selenium_Testing_Automation - Fatal编程技术网

C#Selenium,如何检查页面上是否存在文本<;部门>;

C#Selenium,如何检查页面上是否存在文本<;部门>;,c#,selenium,testing,automation,C#,Selenium,Testing,Automation,我想知道是否有人知道一种检查页面上是否存在文本的方法,我尝试了一些解决方案,但遗憾的是没有效果 <div style="display:inline-block;vertical-align:top"> text I want to find<br> more text I want to find<br> </div> 我要查找的文本 我想查找更多文本 我如何确认/断言这是存在

我想知道是否有人知道一种检查页面上是否存在文本的方法,我尝试了一些解决方案,但遗憾的是没有效果

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

我要查找的文本
我想查找更多文本
我如何确认/断言这是存在的?我假设涉及到
标记名
?我不确定,但是,我在一个非常你好的世界水平


感谢您的帮助。

您的
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()
时,这将导致对象引用异常。

是否要查找包含任何文本或特定文本的元素,或验证元素是否包含一些文本??如果没有任何示例代码或更大的html示例,很难建议实现此目的的最佳方法,但是寻找定位器将是你最好的出发点我基本上从Cosmin那里得到了答案,但是我还有几个额外的问题如果你不介意看下面,我需要所有我能得到的帮助:)谢谢你的帮助,我可以确认这确实有效。我有两个问题:一个是更多的基于“澄清”在string基本上表示“not”之前?说我拿着‘!’它会期望它是空的,或者不存在,然而我基本上是在扭转这种局面吗?(我正在学习所有这些,并希望完全理解)。第二,是否需要确认文本是否是我想要/需要的文本,理想情况下,我可以选择其中的一部分并验证它是否存在。再次感谢您抽出时间!更新了答案。我想感谢您对我的深入解释,因为我不仅是自动化新手,而且是测试新手。这有助于我理解此语句的工作原理,我将能够用它实现更多的自动化!你好,另一个问题,我只是用这个元素做的,我不能让它通过循环,它似乎通过了,但它没有做我要求它做的事情,在它通过的情况下,也就是关闭浏览器,所以我假设它没有通过循环。详细信息不正确,或帐户已过期。xpath/*[@id=“feedbackMessage”]你好,没关系,它正在直接执行语句,这意味着它不起作用,我只是在使用System.Threading.Thread.Sleep(5000)时延迟了5秒;