硒测试时间过长

时间:2013-01-05 00:56:45

标签: java selenium webdriver selenium-webdriver

我有一个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有问题吗?如果我能提供更多细节,请告诉我。

2 个答案:

答案 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>

相关问题