我使用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”变量。
请告诉我这里发生了什么!!!!!!
答案 0 :(得分:1)
您的错误非常清楚,您要查找的文字是Register here
,这确实是由Selenium找到的。
问题是你为什么在Regist5434er here
assertEquals
只需将该行更改为:
assertEquals(ab,"Register here");
答案 1 :(得分:0)
由于'ab'具有空值,因此判断失败。这可能是因为您没有正确定位元素。始终建议使用相对xpath而不是绝对xpath来定位元素。