簡體   English   中英

滾動在 Internet Explorer 中不起作用

[英]Scroll not working in Internet Explorer

我在 Internet Explorer 10 中嘗試使用 javascript scroll(x,y) 。 但是,當我嘗試為網站執行腳本時,它不起作用。 在 IE 中的等價物是什么? 它是 Java Selenium 測試的一部分。 我需要在頁面中滾動。 所以,我通過使用 javascript 執行器執行 javascript 代碼來做到這一點。

for(int i=0;i<X;i+=Y)   
String cmd = "window.scrollTo(0,"+i+")";    
((JavascriptExecutor) driver).executeScript(cmd);

我在測試中使用上面的代碼來滾動頁面。 但是,在 Internet Explorer IE10 中它不起作用。

正確的語法是window.scrollTo(xpos,ypos) 這適用於所有主要瀏覽器,請在此處閱讀有關該功能的信息

你為什么不嘗試像這樣scrollIntoView元素

JavascriptExecutor jse=(JavascriptExecutor)driver;
jse.executeScript("document.getElementById(<id>).scrollIntoView(true)");

面臨類似的問題。 這對我來說是所有瀏覽器中window.scrollTo JS 方法的替代方法。

我有同樣的問題,但使用 IE 9。

我找到

executeScript("window.scrollTo(0,100)")

沒有用,但是

executeScript("window.scrollTo(0,100);")

沒有工作。 注意“;” 在執行命令的末尾。

顯然,某些版本的 IE10 中的 JavascriptExecutor 存在問題。 Here提供了一種可能的解決方法,但我自己沒有嘗試過。

我使用以下方法在 Internet Explorer 的情況下滾動(其中 element 是 WebElement 的引用,需要滾動到屏幕中心):

((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(true);", element);
((JavascriptExecutor) driver).executeScript("window.scrollBy(0,-300)", "");

對於其他瀏覽器,我正在使用:

((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView({block: \"center\"});", element);

這兩個都會將元素滾動到屏幕中心。

不要忘記替換所需的定位器而不是element

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM