Javascript 如何使用SeleniumWebDriver检查元素是否进入视图?
我必须检查一个元素是否在视图中,如果不在视图中,只需使用以下命令将其滚动到视图中,然后与之交互-Javascript 如何使用SeleniumWebDriver检查元素是否进入视图?,javascript,selenium,selenium-webdriver,webdriver,js-scrollintoview,Javascript,Selenium,Selenium Webdriver,Webdriver,Js Scrollintoview,我必须检查一个元素是否在视图中,如果不在视图中,只需使用以下命令将其滚动到视图中,然后与之交互- ((JavascriptExecutor)driver).executeScript("arguments[0].scrollIntoView();", element); 如果一个元素在视图中,不要执行上面的命令。要检查元素是否在视图中,isDisplayed()没有帮助,因为无论元素是否在视图中,它都返回true 您能建议一下什么有助于检查元素是否在视图中吗?要与元素交互,元素需要在视图中。如
((JavascriptExecutor)driver).executeScript("arguments[0].scrollIntoView();", element);
如果一个元素在视图中,不要执行上面的命令。要检查元素是否在视图中,isDisplayed()
没有帮助,因为无论元素是否在视图中,它都返回true
您能建议一下什么有助于检查元素是否在视图中吗?要与元素交互,元素需要在视图中。如果该元素不在视口中,则必须按如下方式
滚动()
:
((JavascriptExecutor)driver).executeScript("arguments[0].scrollIntoView();", element);
((JavascriptExecutor)driver).executeScript("arguments[0].scrollIntoView();", new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("button.nsg-button"))));
您可以在中找到有关不同滚动选项的详细讨论
在这一点上,值得一提的是以下方法:
- 和类中的其他方法
- 来自课堂
最后,在最罕见的情况下,如果由或元素组成,您甚至可能必须在尝试按如下方式滚动之前,为元素located()的
可见性诱导WebDriverWait:
((JavascriptExecutor)driver).executeScript("arguments[0].scrollIntoView();", element);
((JavascriptExecutor)driver).executeScript("arguments[0].scrollIntoView();", new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("button.nsg-button"))));
显示的信息应该有效。你检查过这个箱子了吗。元素的不透明度为0。2.该元素可见,但被另一个元素覆盖。尝试使用driver.findElement(By.id(“idOfElement”).isDisplayed();或者检查size driver.findElements(by).size()>0以确定是否显示该元素。请参阅此以获得一个好的答案-也是此-请参阅此@demouser123,感谢您指向答案。我真的帮了大忙!