在我的selenium webdriver代码中每次执行之间等待?

时间:2013-06-10 14:13:24

标签: selenium webdriver

有没有人知道如何在我的selenium代码中等待这些操作,因为当我运行它时,每次都会得到不同的结果,因为浏览器每次都以不同的速度运行。有没有办法使每个moveByOffSet之间我可以让它等待几秒钟?

 Actions builder2 = new Actions(driver);
    Action moveByOffset = builder2.moveByOffset(100, 200)
            .click()
            .moveByOffset(-150, 0)
            .click()
            .moveByOffset(0, -150)
            .click()
            .moveByOffset(150, 0)
            .click()
            .moveByOffset(0, 150)
            .contextClick()              
            .build();
    moveByOffset.perform();

1 个答案:

答案 0 :(得分:0)

您可以从Actions类继承并覆盖click()方法,包括在其体内进行睡眠。

public class MyActions extends Actions {

    public MyActions(WebDriver driver) {
        super(driver);
    }

    @Override
    public Actions click() {
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            //do something
        }
        return super.click();
    }
}

然后在测试中使用新类。

Actions actions = new MyActions(driver);

请注意,将睡眠电话放入测试代码并不是一个好习惯。考虑使用WebDriverWait类提供的功能。