0

私はウェブページにテーブルを持っています。横だけでなく縦にもスクロールしたい。しかし、それは私にとってはうまくいきません。アクションを使用してみましたが、それも役に立ちませんでした。以下は私が使用したアクションコードです

WebElement slider = driver.findElement(By.id(ID));
Actions builder = new Actions (driver);
builder.dragAndDropBy(slider, 30, 0).build().perform();

また、私は試しました:

int height = slider.getSize().getHeight();
int width = slider.getSize().getWidth();
dragAndDrop = builder.clickAndHold(slider).moveByOffset(height,0).release().build();

奇妙なことに、スライダーに割り当てた値が6行だけ移動します。

物語の HTML:

    <div id="pt1:pc1:md1::scroller" tabindex="-1" style="position: absolute; overflow: auto; z-index: 0; width: 770px; top: 46px; height: 187px; right: 0px;">
    <div style="width: 1260px; height: 6562px; visibility: hidden;"></div>
    </div>
    </div>
    </div>
4

1 に答える 1

0

これらの種類の「ボトルネック」(Arekが質問へのコメントで説明したように)については、jsアプローチを試してください。セレン自動化プロジェクトのために、一連のメソッド (jsExecutor を使用) を作成しました。以下のアイデアが役立つと思います(メソッドコードが提供されています):

public void jsClick(Strning cssSelector) {
JavascriptExecutor js = (JavascriptExecutor) driver;
        StringBuilder stringBuilder = new StringBuilder();
        stringBuilder.append("var x = $(\'"+cssSelector+"\');");
        stringBuilder.append("x.click();");
        js.executeScript(stringBuilder.toString());
}

public String jsGetText(String cssSelector){
 JavascriptExecutor js = (JavascriptExecutor) driver;
        StringBuilder stringBuilder = new StringBuilder();

stringBuilder.append("var x = $(\""+cssSelector+"\");");
        stringBuilder.append("return x.text().toString();")       ;


       String res= (String) js.executeScript(stringBuilder.toString());

return res;
}

public String jsGetColor(String css){

        JavascriptExecutor js = (JavascriptExecutor) driver;
        StringBuilder stringBuilder = new StringBuilder();
        stringBuilder.append("var x=$(\'"+css+"\');");
        stringBuilder.append("return x.css('color')");
        String res= (String) js.executeScript(stringBuilder.toString());
        return res;

    }

これが何らかの形で役立つことを願っています。

于 2012-09-25T10:59:56.820 に答える