1

固定位置のヘッダーを持つ自動セレンテストに取り組んでいます。

    div#floatingDiv {
        position: fixed;
        background-color: #000000;
        color:white;            
    }

Firefox Web ドライバーを使用して Selenium テストを自動化しようとすると、このフローティング ヘッダーが邪魔になります。

発生しているように見えるのは、セレンが現在画面外にある要素をクリックすると、Firefox Web ドライバーがページをスクロールして、アクセスしているボタンがページの上部にくるようにし、要素をクリックすることです。ただし、ヘッダーの位置は固定されているため、要素はヘッダーの後ろに隠れてしまい、テストは失敗します。

セレンでスクロールバーを直接制御する方法はありますか?

この問題についてさらに実験を行った結果、この問題は、入力フィールドではなく、ページの下部にあるボタンにアクセスした場合にのみ発生することがわかりました。

4

2 に答える 2

1

次のテストされていない Java コードを試してください。スクロールする場所と量を微調整する必要があります。

WebElement input = (Locatable) driver.findElement(By.xpath("some path to your input"));
int y = (Locatable)input .getCoordinates().getLocationOnScreen().getY();
((JavascriptExecutor)driver).executeScript("window.scrollBy(0,"+y+");");
input.click();
于 2013-05-13T21:46:20.490 に答える
1

スクロールバイメソッドではなく、scrollTo メソッドを使用する必要があります。

public void scrollToElement(By by) {
    Locatable element = (Locatable) selenium.findElement(by);
    Point p= element.getCoordinates().getLocationOnScreen();
    JavascriptExecutor js = (JavascriptExecutor) selenium;  
    js.executeScript("window.scrollTo(" + p.getX() + "," + (p.getY()+150) + ");");
}
于 2013-05-14T22:18:06.167 に答える