如果存在消息,则与软断言混淆
Confusion with Soft asserting if a message is present
我正在自动化一个表单,场景是,当给出无效条目时,消息 'Success' 不应该出现
我尝试使用
进行检查
s_assert.assertEquals(driver.findElement(By.xpath("//div[contains(.,'Succes')]")).isDisplayed(), false);
但是,虽然 运行,它显示 'Unable to locate element:'
仅当我的测试失败时才会显示该消息。所以预期的行为是,元素不会出现。
如何告诉 webdriver
只检查它是否存在而不抛出错误!提前致谢...
您遇到的问题与断言无关,而是与查找元素机制有关。您期待 Selenium
未找到的元素,因此代码直到 Assertion
才到达
您必须根据需要进行某种异常处理。在断言之前。
public bool Test()
{
try
{
Driver.FindElement(By.Id("test"));
return true;
}
catch (Exception ex)
{ // catch the exception you want
return false;
}
}
public void TestAssert()
{
Assert.AreEqual(Test(),false);
}
注意:我的是 C# 和 NUnit
谢谢...我添加了以下代码解决了我的问题。
public static boolean isElementPresent(String xpath) {
try {
driver.findElement(By.xpath(xpath));
return true;
} catch (Exception e) {
return false;
}
}
public void formsNegetive() {
boolean b = isElementPresent(("//div[@class='alert-box success']"));
如果(二){
s_assert.assertEquals("Success: You will be contacted by our experts soon.", driver.findElement(By.cssSelector("div.alert-box.success")).getText());
}
}
我正在自动化一个表单,场景是,当给出无效条目时,消息 'Success' 不应该出现
我尝试使用
进行检查s_assert.assertEquals(driver.findElement(By.xpath("//div[contains(.,'Succes')]")).isDisplayed(), false);
但是,虽然 运行,它显示 'Unable to locate element:'
仅当我的测试失败时才会显示该消息。所以预期的行为是,元素不会出现。
如何告诉 webdriver
只检查它是否存在而不抛出错误!提前致谢...
您遇到的问题与断言无关,而是与查找元素机制有关。您期待 Selenium
未找到的元素,因此代码直到 Assertion
您必须根据需要进行某种异常处理。在断言之前。
public bool Test()
{
try
{
Driver.FindElement(By.Id("test"));
return true;
}
catch (Exception ex)
{ // catch the exception you want
return false;
}
}
public void TestAssert()
{
Assert.AreEqual(Test(),false);
}
注意:我的是 C# 和 NUnit
谢谢...我添加了以下代码解决了我的问题。
public static boolean isElementPresent(String xpath) {
try {
driver.findElement(By.xpath(xpath));
return true;
} catch (Exception e) {
return false;
}
}
public void formsNegetive() {
boolean b = isElementPresent(("//div[@class='alert-box success']"));
如果(二){
s_assert.assertEquals("Success: You will be contacted by our experts soon.", driver.findElement(By.cssSelector("div.alert-box.success")).getText());
}
}