2012-09-25 67 views
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(); 

奇怪的是我分配slidder什麼都值了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> 
+1

也許一些基於JS的解決方案會有幫助嗎?我沒有任何確切的示例,但是這似乎適用於正常的頁面滾動,所以也許經過一些調整後,它可以適合您的問題: ((JavascriptExecutor)驅動程序).ExecuteScript(「window.scroll(0, 150);「); – Arek

回答

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; 

    } 

希望這可以幫助你。