简体   繁体   English

Java + TestNG。 不存在的元素无法执行else语句

[英]Java + TestNG. Not present element fail to go else statement

    boolean a = browser1.findElement(By.xpath("//*[@id='tsf']/div[2]/div[3]/center/input")).isDisplayed();

    if (a == true)
    {
        extent.log(LogStatus.PASS, "Website launched");
    }
    else
    {
        extent.log(LogStatus.FAIL, "Website no launched");
    }

If the xpath element is present it is successful to log the true statement. 如果存在xpath元素,则可以成功记录true语句。 But for not present xpath element it will not go into else statement. 但是对于不存在的xpath元素,它将不会进入else语句。 How can I set to find/verify the exist or non exist element in testng? 如何设置以查找/验证testng中存在或不存在的元素?

Using Assert will send Pass/Fail result in testNG. 使用断言将在testNG中发送通过/失败结果。

WebDriver browser1 = new FirefoxDriver();
        try
        {
            WebElement w = browser1.findElement(By.xpath("//*[@id='tsf']/div[2]/div[3]/center/input"));
            boolean flag = w.isDisplayed();

            if(flag)
            {
                Assert.assertTrue(true, "Website Launched");
            }
            else
            {
                Assert.fail("Website no launched");
            }

        }catch(NoSuchElementException n)
        {
            Assert.fail("Website no launched");
        }

Create function like below code to find element: 创建类似于以下代码的函数以查找元素:

boolean a = isElementPresent(By.xpath("//*[@id='tsf']/div[2]/div[3]/center/input"));

public boolean isElementPresent(String element){
    try{
        browser1.findElement(By.xpath(element)).isDisplayed();
        return true;
       }
       catch(Exception ex){
           return false;
       }

}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM