Selenium assertEqual

时间:2014-07-16 05:59:53

标签: java selenium testng assertion

我使用testng框架在selenium webdriver中创建了一个测试用例。我正在尝试getText()并打印它,并在Assert.assertEquals()中使用它。

我遇到的问题是,当我运行此测试用例时,它显示错误“java.lang.AssertionError:expected []但找到[在这里注册]”并且在“ab”变量中也没有打印。

我的测试用例:::::::::

@Test
    public void signinpopup()
    {
        driver.get("http://uat.tfc.tv/");
        driver.findElement(By.id("login_buttoni")).click();
        String ab = driver.findElement(By.xpath("html/body/section[1]/div/div[1]/div[7]/div[2]/a")).getText();   //ab variable contains value "Register here"

        System.out.println(ab);
        System.out.println("hello1");
        //Assert.assertEquals("Registe12r here", driver.findElement(By.xpath("html/body/section[1]/div/div[1]/div[7]/div[2]/a")).getText());
        Assert.assertEquals(ab,"Regist5434er here");
    }

当我将断言条件更改为Assert.assertEquals(ab,“Register here”)时,还有一件事;然后它将打印“ab”变量。

请告诉我这里发生了什么!!!!!!

2 个答案:

答案 0 :(得分:1)

您的错误非常清楚,您要查找的文字是Register here,这确实是由Selenium找到的。

问题是你为什么在Regist5434er here

中写assertEquals

只需将该行更改为:

assertEquals(ab,"Register here");

答案 1 :(得分:0)

由于'ab'具有空值,因此判断失败。这可能是因为您没有正确定位元素。始终建议使用相对xpath而不是绝对xpath来定位元素。