如果找到Element,如何使测试失败,如果没有找到Element,如何使测试通过
本文关键字:何使 测试 Element 如果没有 失败 如果 | 更新日期: 2023-09-27 18:17:56
我必须开发一个单元测试,如果元素存在则失败,如果元素不存在则通过测试。
详细地说,我有一个简单的形式,如姓名,电子邮件,地址等。当我单击save按钮时,如果required字段为空,则显示错误消息。如果显示错误信息,那么我必须失败的测试,如果没有显示,然后通过测试。有解决办法吗?
try
{
//Click on save button
IWebElement save_profile = driver.FindElement(By.XPath("//div[@class='form-group buttons']/div/input"));
save_profile.Click();
//Locate Error Message below the text box
IWebElement FirstNameError = driver.FindElement(By.XPath("//form[@class='default form-horizontal']/fieldset/div[4]/div[2]/span/div"));
//I want to fail the test here if above element is found
}
catch
{
//pass the test if element is not found in try statement
}
我想我走错方向了,但我找不到解决办法。请建议。提前感谢。
下面是" finelement "的行为如果您正在查找的元素存在,它将返回WebElement。如果元素不存在,则抛出异常,如果处理不当则会导致问题。
所以使用"findElements"(这里注意最后的's')以下是"findElements"的行为它返回一个列表,如果元素存在,则大小明显大于0,如果元素不存在,则大小为0。所以你可以输入一个if条件size为
下面是Java中的伪代码
if (driver.findElements(By.XPath("//div[@class='form-group buttons']/div/input")).size()>0)
//print element exists
else
//print element does not exists.
您有两个选择。
首先,使用Assert。
assertTrue(布尔值);try
{
//Click on save button
IWebElement save_profile = driver.FindElement(By.XPath("//div[@class='form-group buttons']/div/input"));
save_profile.Click();
//Locate Error Message below the text box
IWebElement FirstNameError = driver.FindElement(By.XPath("//form[@class='default form-horizontal']/fieldset/div[4]/div[2]/span/div"));
//I want to fail the test here if above element is found
Assert.assertTrue(false);
}
catch
{
//pass the test if element is not found in try statement
Assert.assertTrue(true);
}
其次,如果在方法内部使用,则使用布尔返回类型:
boolean isValidated = false;
try
{
//Click on save button
IWebElement save_profile = driver.FindElement(By.XPath("//div[@class='form-group buttons']/div/input"));
save_profile.Click();
//Locate Error Message below the text box
IWebElement FirstNameError = driver.FindElement(By.XPath("//form[@class='default form-horizontal']/fieldset/div[4]/div[2]/span/div"));
//I want to fail the test here if above element is found
isValidated =false;
return isValidated;
}
catch(Exception e)
{
//pass the test if element is not found in try statement
isValidated = true;
return isValidated;
}
如果方法返回true,则通过测试,反之亦然