替换' Thread.sleep(5000)'的替代方法

时间:2015-10-15 03:48:41

标签: java sleep

是否有替代方法可以替换Thread.sleep(5000)'?目前,评论按钮只点击一次,即使注释按钮还有其他元素,也会转到回复按钮的代码?所以我认为这可能是因为' Thread.sleep(5000)'页面未完成加载。

          if(commentsbutton.size() > 0) {
                commentsbutton.get(0).click(); //click on button if found
                Thread.sleep(5000); //pause for 5 seconds
          }           
          else clickMore = false;

          if(repliesbutton.size() > 0) {
                 repliesbutton.get(0).click(); //click on button if found
                 Thread.sleep(5000); //pause for 5 seconds
           }
           else clickMore = false; 

           if(seemorebutton.size() > 0) {
                  seemorebutton.get(0).click(); //click on button if found
                  Thread.sleep(5000); //pause for 5 seconds
           }
           else clickMore = false;
           }

1 个答案:

答案 0 :(得分:0)

您可以使用循环,但您必须了解,此循环将在执行期间使用进程资源。我想,无论如何,Thread.sleep都会在你的情况下得到优先考虑......

long now = System.currentMillisec();   
long executionDuration = now + 5000;
while(now < executionDuration){
    now = System.currentMillisec();
}

但正如你所说

  

评论按钮只点击一次,然后转到代码

看来,您需要在commentsbutton集合的元素上添加额外的循环,以便在转到回复按钮之前单击您拥有的所有注释按钮。现在,您只需点击一个按钮,即commentsbutton.get(0).click();

if(commentsbutton.size() > 0) {
    for (WebElement element : commentsbutton) {
        element.click(); //click on button if found
        Thread.sleep(5000); //pause for 5 seconds
    }
}