我有一个Selenium测试,其中部分函数是:
try {
System.out.println("1.d.i");
Boolean tosDisplayed = driver.findElements(By.id("tos-acceptance")).size()<0;
System.out.println("1.d.ii");
if(tosDisplayed){
SureClick(By.id("tos-acceptance"));
SureClick(By.xpath("html/body/div[2]/button[1]"));
}
}
我打印了“1.d.i”,然后WebDriver在那里挂了将近5分钟,然后继续执行剩下的功能。但是,如果我注释掉布尔tosDisplayed声明,它还会在挂起其余代码之前打印“1.d.ii”。最终,测试完成了,但它耗时太长。我的WebDriver有问题吗?如果我能提供更多细节,请告诉我。
答案 0 :(得分:0)
try to use Logger.
e.g.
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class QCEditTestCaseTest extends BaseSeleniumTest {
private Logger log = LoggerFactory.getLogger(QCEditTestCaseTest.class);
@Test
public void prerequisitesFilling(){
//blablabla
// your code here
//blablabla
log.info(any info);
// log.error(any errors catched by try-catch block);
}
}
希望这对你更好。
答案 1 :(得分:0)
我认为您会发现以下行导致您出现问题:
Boolean tosDisplayed = driver.findElements(By.id("tos-acceptance")).size()<0;
列表(这是driver.findElements()返回的内容)的大小永远不会小于0.
如果在到达if语句时对布尔定义进行注释,则布尔值不存在,所以我希望它会在那时爆炸。
我不知道SureClick做了什么,所以我不能告诉你为什么如果你在这个方法中变慢,为什么事情变慢,你必须提供它的代码以获得更多的帮助。 / p>