使用WebDriver滚动视图或元素

时间:2019-04-12 10:03:51

标签: selenium-webdriver

我有一个动态列表,其中包含不同的编号。项目,根据某些选择显示。

如果列表包含7个以上的项目,则在悬停时,列表将显示滚动条。 (如果项目较少,将没有滚动条。) 我已经根据其类名找到了滚动条的元素,但是使用webdriver滚动滚动失败。 这是代码:

//hover
Actions action = new Actions(driver);
WebElement placesList = driver.findElement(By.id("divPlaces"));
action.moveToElement(placesList).perform();

//scroll the list
((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(true)", element);

HTML代码:

<div class="blk">
            <div class="smlhead">
                Places
            </div>

            <div id="divPlacesCont" class="sbarPrnt" style="height: 179.219px;">
            <div id="divPlaces" class="tilewrap sbarcont" style="height: 179px;">        

            <div class="blksmlr smlhead sngline">
                <a href="#" onclick="javascript:mcSearch.placeSelected(this, '12');">hyd</a>
            </div>
(removed 7 more items for simplicity...)

                <div class="sbar" style="display: block;">
                    <div class="sbarpos" style="height: 152.576px; top: 0px;"></div>
                </div>
             </div>
             </div>
</div>

更新:我有一个想法要分享。 list元素始终在页面左侧可见(并且我不需要移动/滚动到该元素以使其像action.moveToElement()一样可见)。悬停时,将显示此列表中的滚动条,然后单击该条并将其向下拖动以查看(最后)项目。

使用上面的代码,它会将“框架”向上移动,即从“国家”到下面列表的所有内容都向上移动了一点,但动态中的最后一个隐藏项目仍然不可见。

enter image description here

0 个答案:

没有答案