0

ブラウザが毎回異なる速度で実行されるため、実行中に毎回異なる結果が得られるため、セレンコードでこれらのアクション間で待機する方法について誰かが考えていますか? 各 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();
4

1 に答える 1

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 クラスが提供する機能の使用を検討してください。

于 2013-06-10T14:38:34.830 に答える