如何在下拉列表中滚动到隐藏元素?

Posted

技术标签:

【中文标题】如何在下拉列表中滚动到隐藏元素?【英文标题】:How to perform a scroll in a drop down list to hidden element? 【发布时间】:2016-10-05 17:17:08 【问题描述】:

如何使用 selenium, appium 在下拉列表中执行滚动? 我使用标签名称来识别元素,<md-option .../> 是下拉列表中的项目。

这是我的html代码:

【问题讨论】:

定位隐藏元素时是否出现错误? 我的意思是在滚动之前隐藏不可见 【参考方案1】:

我是这样解决的:

// Create instance of javascript executor
JavascriptExecutor je = (JavascriptExecutor) driver;
//Identify the WebElement which will appear after scrolling down
WebElement element = driver.findElement(By.tagName("...."));
// now execute query which actually will scroll until that element is not appeared on page.
je.executeScript("arguments[0].scrollIntoView(true);",element);

【讨论】:

如果我不知道元素是什么,我只想让组合框向下滚动到最后怎么办?我可以这样做吗? WebElement element = driver.findElement(By.tagName("...."));不返回任何结果,因为该元素尚未出现在页面上,它只会在滚动下拉滚动条后出现..【参考方案2】:

试试下面的代码。

browser.executeScript('window.scrollTo(0,0);').then(function () 
    page.saveButton.click();
)

希望这会有所帮助。 :)

【讨论】:

非常感谢您的回答,我已经用下面的代码解决了

以上是关于如何在下拉列表中滚动到隐藏元素?的主要内容,如果未能解决你的问题,请参考以下文章

如何隐藏下拉列表以及如何从下拉列表中进行多选?

表单下拉列表多行文本隐藏域

如何在数据列表下拉列表中提供滚动效果?

语义 ui 滚动下拉列表不显示所选项目

如何使用 select2 插件隐藏下拉列表中的选项?

类似select下拉框,鼠标点击元素以外隐藏下拉框(阻止冒泡事件)