我已经写了一个硒代码来选择浏览器上的一个按钮并单击它,但是我希望硒在移动到该元素时要等待几秒钟。我该怎么做?以下是我尝试过的代码,但对我不起作用。

我的代码:

    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/

10-10 12:57