Java ';断言True';硒的概念
我使用Java ';断言True';硒的概念,java,selenium,testng,Java,Selenium,Testng,我使用selenium来比较web表中的名称,我声明了具有第一个名称和第二个名称的局部变量,并将其与web表中的值进行比较 对于正向流,我的代码正常运行,并显示了预期的结果 对于声明字符串lastname中的名称与web表中的值不匹配的负流,不会显示预期结果。未打印assertTrue中的消息。我的eclipse显示testng正在运行,但之后什么也没有发生 我的假设是,如果web表具有除“Product”以外的任何姓氏,则找到的记录应获取值false,并应移到“AssertTrue”行,并应打
selenium
来比较web表中的名称
,我声明了具有第一个名称和第二个名称的局部变量,并将其与web表中的值进行比较
对于正向流,我的代码正常运行,并显示了预期的结果
对于声明字符串lastname
中的名称与web表中的值不匹配的负流,不会显示预期结果。未打印assertTrue
中的消息。我的eclipse显示testng
正在运行,但之后什么也没有发生
我的假设是,如果web表
具有除“Product”以外的任何姓氏,则找到的记录应获取值false,并应移到“AssertTrue”行,并应打印stmtLastname不是预期的
@Test
public void abc(){
String firstname="Test";
String lastname="Product";
boolean recordfound= false;
String firstpart="//*[@id='fchArea']/table/tbody/tr[";
String secondpart="]/td[1]/a";
int i=8;
while (iselementpresent(firstpart+i+secondpart)){
//firstname
String name1=driver.findElement(By.xpath(firstpart+i+secondpart)).getText();
if (name1.equals(firstname)){
String altofsecondpart = firstpart+i+secondpart.replace("td[1]", "td[2]");
String name2=driver.findElement(By.xpath(altofsecondpart)).getText();
if(name2.equals(lastname)){
System.out.println("secondcase pass");
recordfound = true;
break;
}
}
}
Assert.assertTrue(recordfound, "Lastname is not as expected");
}
public boolean iselementpresent(String xpath){
int lst=driver.findElements(By.xpath(xpath)).size();
if(lst == 0){
return false;
}
else{
return true;
}
}
while循环是无限的,它总是检查索引8的元素,因为您有固定的i值。所以你应该增加或减少i值。但在这种情况下,若行号不存在,那个么它将给出元素NotFound错误 所以,最好的方法是捕获web表中的行数,然后迭代相同的循环 谢谢,
-Sadik您的while循环将无限循环,并始终检查索引8的元素,因为您有固定的i值。所以你应该增加或减少i值。但在这种情况下,若行号不存在,那个么它将给出元素NotFound错误 所以,最好的方法是捕获web表中的行数,然后迭代相同的循环 谢谢,
-SadikHi,我在第二个“if”条件中使用了break语句来避免连续循环。从逻辑上讲,当两个条件都为true时,这将中断。Hi,我在第二个“如果”条件中使用了中断语句,以避免连续循环。从逻辑上讲,当两个条件都为真时,这将中断。请在问题中发布相关HTML并格式化,以便我们可以帮助您。请在问题中发布相关HTML并格式化,以便我们可以帮助您。