簡體   English   中英

Selenium:在Java中自動進行垂直滾動

[英]Selenium: Automate Vertical Scrolling in Java

我需要使用滾動條自動向下滾動。 這就是滾動條的樣子。 這是滾動條的html代碼:

<div class="z-biglistbox-wscroll-vertical">
    <div class="z-biglistbox-wscroll-drag" style="top: 132.253px;">
        <div class="z-biglistbox-wscroll-home" title="Home"></div>
        <div class="z-biglistbox-wscroll-up" title="Previous"></div>
        <div class="z-biglistbox-wscroll-down" title="Next"></div>
        <div class="z-biglistbox-wscroll-end" title="End"></div>
    </div>
</div>

我想到也許單擊滾動條的“下一步”按鈕,但是我的代碼不起作用。 我做了如下的事情:

((JavascriptExecutor)driver).executeScript("arguments[0].click();", scroll_down);

WebElement scroll_down = driver.findElement(By.cssSelector(".z-biglistbox-wscroll-down"));
scroll_down.click();

兩者都不起作用。 誰能給我一個想法怎么做?

更新:此問題已解決。 請參閱此鏈接中 alecxe的答案以獲取適用於我的解決方案。

您可以直接使用javascriptexecutor進行滾動。 下面的代碼可能會給您一些想法。

情況1:向上滾動到某個元素,以便期望的元素可見

JavascriptExecutor je = (JavascriptExecutor) driver;

//Identify the WebElement which will appear after scrolling down
WebElement element = driver.findElement(By.xpath(".//*[@id='mCSB_3_container']/p[3]"));

// now execute query which actually will scroll until that element is not appeared on page.
je.executeScript("arguments[0].scrollIntoView(true);",element);

情況2:向上滾動到某個元素

((JavascriptExecutor)driver).executeScript("scroll(0,400)");

希望這對您有所幫助。 謝謝。

WebElement element = driver.findElement(By.className("z-biglistbox-wscroll-down"));
element.click();

您可以使用它,但是它將在向下滾動元素中僅單擊一次。

嘗試下面的代碼將窗口滾動到底部:

WebDriver driver = new FirefoxDriver();
JavascriptExecutor jse = (JavascriptExecutor)driver;

JavascriptExecutor jsx = (JavascriptExecutor) driver;
jsx.executeScript("window.scrollBy(0,500)", "");

暫無
暫無

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

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