【发布时间】:2020-04-06 13:36:25
【问题描述】:
我必须检查一个元素是否在视图中,如果没有,则只有使用以下功能将其滚动到视图中,然后与之交互 -
((JavascriptExecutor)driver).executeScript("arguments[0].scrollIntoView();", element);
如果元素在视图中,则不要执行上述命令。要检查元素是否在视图中,isDisplayed() 没有帮助,因为无论元素是否在视图中,它都会返回 true。
您能否建议如何检查某个元素是否在视图中?
【问题讨论】:
-
isDisplayed 应该可以工作。您是否检查过以下情况: 1. 元素的不透明度为 0。 2. 元素可见但被另一个元素覆盖。试试 driver.findElement(By.id("idOfElement")).isDisplayed();或者检查 size driver.findElements(by).size() > 0 来判断是否显示元素。
-
参考这个以获得好的答案 - stackoverflow.com/a/45244889/1728790
-
@demouser123,感谢您指出答案。我真的帮了大忙!
标签: javascript selenium selenium-webdriver webdriver js-scrollintoview