这与其他滚动条问题略有不同。我需要验证滚动条是否不存在。在开发此功能之前,我检查了页面并找到了一个xpath“// * [contains(@ id,'scroller')]”。 现在代码已经开发,没有滚动条,但xpath仍然存在。这是html代码段:
<div tabindex="-1" id="pt1:r1:0:pt1:t1::scroller" style="position: absolute; overflow: auto; z-index: 0; width: 456px; top: 32px; height: 119px; right: 0px;">
<div style="width: 456px; height: 119px; visibility: hidden;"></div>
</div>
我不能只做一个
List<WebElement> a = driver.findElements(By.xpath("//*[contains(@id,'scroller')])
然后断言s.size() == 0
因为即使没有滚动条,该元素仍然存在。
我也试过了
((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(true);", searchColumn);
其中searchColumn是表格的最右侧列(仍然在视图中),该列不应再有滚动条。如果没有滚动条,我认为这会断言,但事实并非如此。
知道如何验证没有滚动条吗?
由于
答案 0 :(得分:1)
Scorllbar不是您可以使用Webdriver的findElement方法找到的WebElement。
您的开发人员可能已修改了CSS属性以隐藏scorllbar。
检查此示例。它取自W3Schools CSS演示。
div.scroll {
background-color: #00FFFF;
width: 100px;
height: 100px;
overflow: scroll;
}
div.hidden {
background-color: #00FF00;
width: 100px;
height: 100px;
overflow: hidden;
}
&#13;
<p>The overflow property specifies what to do if the content of an element exceeds the size of the element's box.</p>
<p>overflow:scroll</p>
<div class="scroll">You can use the overflow property when you want to have better control of the layout. The default value is visible.</div>
<p>overflow:hidden</p>
<div class="hidden">You can use the overflow property when you want to have better control of the layout. The default value is visible.</div>
&#13;
因此,访问table元素并检查style属性或与开发人员核对他修改的属性。