【发布时间】:2017-02-03 14:57:27
【问题描述】:
我正在使用 C# 中的 Selenium Webdriver 对带有网格的网页进行 UI 测试。
网格有自己的滚动条,我想向下滚动到网格底部以检查当我通过模态表单添加它时是否出现了某个结果(UI 测试当前失败,因为它不能在我向下滚动之前查看结果)。
如何定位网格上的滚动条,而不是主网页上的普通滚动条?这是我的网格滚动条的 HTML:
<div class="ScrollbarLayout_face ScrollbarLayout_faceVertical public_Scrollbar_face" style="height: 367.38px; transform: translate3d(0px, 148.535px, 0px); backface-visibility: hidden;"></div>
我正在考虑使用下面的代码,但我想不出如何定位网格底部的元素以滚动到?
WebElement element = driver.findElement(By.id("my-id"));
Actions actions = new Actions(driver);
actions.moveToElement(element);
actions.perform();
【问题讨论】:
-
您应该尝试使用 javascript 函数
Element.scrollIntoView()以达到((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].scrollIntoView()", driver.FindElement(By.id("my-id")));的特定元素 -
这是我的问题 - 如果我可以首先定位或找到元素,我就不需要向下滚动。我的 UI 测试失败,因为无法查看该元素,即使它位于网格底部,只是看不见。
-
如果你想在需要的时候滚动,你可以检查
element.Displayed属性来决定是否滚动。