我一直在循环中执行一个动作,直到达到特定的时间为止。
示例:执行类似sysout的操作10秒,然后停止执行。
我已经看到了一些关于Timer类的信息,但是到目前为止没有什么用处。
在下面的代码中,尝试继续滚动(因为它是一个无限滚动)页面,直到几秒钟内到达某个时间。
JavascriptExecutor js = (JavascriptExecutor) driver;
while(countdown <= 15) {
//countdown should be my defined limit of time
js.executeScript("window.scrollTo(0, document.body.scrollHeight);");
}发布于 2019-10-01 09:39:34
使用以下代码:
import java.text.ParseException;
import java.util.concurrent.TimeUnit;
public class WaitAndExecute {
public static void main(String[] args) throws InterruptedException, ParseException {
long startTime = System.nanoTime();
long endTime = startTime;
long durationInSeconds = 0;
long durationInNano = 0;
while(durationInSeconds<10) {
methodToTime();
System.out.println("2 seconds");
endTime = System.nanoTime();
durationInNano = (endTime - startTime); // Total execution time in nano seconds
durationInSeconds = TimeUnit.NANOSECONDS.toSeconds(durationInNano); // Total execution time in seconds
if(durationInSeconds>=10) {
System.out.println("10 seconds done");
break;
}
}
System.out.println(durationInSeconds);
}
private static void methodToTime() {
try {
TimeUnit.SECONDS.sleep(2);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}输出:
2秒2秒10秒完成10
旧码
使用以下代码:
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.JavascriptExecutor;
public class WaitAndExecute {
public static void main(String[] args) throws InterruptedException {
int countdown = 1;
while (countdown < 10){
System.out.println(countdown);
JavascriptExecutor js = (JavascriptExecutor) driver; // pass your webdriver reference variable
js.executeScript("window.scrollTo(0, document.body.scrollHeight);");
++countdown;
TimeUnit.SECONDS.sleep(10);
}
}根据需要的迭代更改下面的行号:
while (countdown < 10){https://stackoverflow.com/questions/58181535
复制相似问题