我已经写了一个硒代码来选择浏览器上的一个按钮并单击它,但是我希望硒在移动到该元素时要等待几秒钟。我该怎么做?以下是我尝试过的代码,但对我不起作用。
我的代码:
Actions actionobj = new Actions(fd1);
actionobj.moveToElement(heatmap);
actionobj.perform();
fd1.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
Actions action2 = new Actions(fd1);
action2.click(heatmap);
action2.perform();
我的代码工作正常,但是当鼠标移至按钮时它不会停止10秒钟。我也尝试过Thread.sleep(),但这也没有用。
最佳答案
似乎Java Selenium API具有方法pause(long)
。
根据文档,它需要一个long
来表示要暂停的毫秒数。
Actions actionobj = new Actions(fd1);
actionobj.moveToElement(heatmap);
actionobj.pause(10000); //wait 10 seconds
actionobj.click(heatmap);
actionobj.perform();
imlicitlyWait()
不会暂停您的代码。如果没有立即找到WebElement
,这是一种让Selenium始终等待几秒钟的方法。请注意,不建议使用
pause()
。手动暂停代码是一种不好的做法。您应该问自己一个问题,为什么您认为有必要暂停代码。如果您要模拟一个等待10秒的人,那很好,如果您希望其他元素或javascript完成加载,则应该考虑使用其他方法。编辑:并且您的代码不会中途暂停(即使您使用
Thread.sleep()
),因为在Action.perform()
上执行了整个序列,因为先构建Actions对象,然后在执行时执行整个序列行动的总和。关于java - 在 Selenium 中等待几秒钟?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27120530/