gpt4 book ai didi

Java TimerTask 不会输出 selenium 中的文本

转载 作者:行者123 更新时间:2023-12-01 14:03:49 24 4
gpt4 key购买 nike

我有一个使用远程网络驱动程序的 Selenium 脚本。我正在使用 timer.scheduleAtFixedRate(new TimerTask() 输出我的数据,但是当我使用 PrintWriter writer = response.getWriter(); 输出 writer.prntln ("Testing Started"); 当它在计时器内时,它不会显示在网页上。但它在计时器外工作。另外,如果我在计时器内执行 system.out.println它有效。

protected void doGet(final HttpServletRequest request, final HttpServletResponse response) throws ServletException, IOException {

int delay = 1000;
int period = 1000;
Timer timer = new Timer();

timer.scheduleAtFixedRate(new TimerTask()
{

PrintWriter writer = response.getWriter();
int count = 0;
public void run()
{

//WebDriver actions in here.


}
}, delay, period);

最佳答案

我认为问题在于 Timer 产生了一个新线程,因此 run() 方法内的代码是异步执行的。当它执行时,您的 doGet() 方法可能已经完成并且响应已被刷新。

在 servlet 方法内创建新闻线程通常是一个坏主意。如果您确实想要进行异步处理,您可能需要查看 Servlet 3.0 规范中的异步 servlet。

我不确定您想要实现什么目标,但可能有比使用 Timer 对象更简单的方法。如果您只想在循环内延迟当前线程的执行,可以使用 Thread.sleep() 代替。

关于Java TimerTask 不会输出 selenium 中的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19102125/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com