Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在选择元素并使用selenium(在桌面屏幕中使用)刷新页面后,在视口中检查元素是否可用_Javascript_Java_Selenium_Selenium Webdriver - Fatal编程技术网

Javascript 如何在选择元素并使用selenium(在桌面屏幕中使用)刷新页面后,在视口中检查元素是否可用

Javascript 如何在选择元素并使用selenium(在桌面屏幕中使用)刷新页面后,在视口中检查元素是否可用,javascript,java,selenium,selenium-webdriver,Javascript,Java,Selenium,Selenium Webdriver,问题:在选择元素并刷新页面后,该元素不可见。在修复之后,元素在页面刷新后不进行任何滚动就可见了。这样我可以选择一个不同的选项 我在下面进行了尝试,不管视口中是否存在元素(在可见屏幕中),测试是否通过。如果有人能发布解决方案,我真的很感激 WebElement element = > WebDriverManager.getWebDriver().findElement(By.id("CUSTRATINGS")); > > WebDriver driver =

问题:在选择元素并刷新页面后,该元素不可见。在修复之后,元素在页面刷新后不进行任何滚动就可见了。这样我可以选择一个不同的选项

我在下面进行了尝试,不管视口中是否存在元素(在可见屏幕中),测试是否通过。如果有人能发布解决方案,我真的很感激

WebElement element =
> WebDriverManager.getWebDriver().findElement(By.id("CUSTRATINGS"));
> 
>         WebDriver driver = ((RemoteWebElement)element).getWrappedDriver();
> 
>         return (Boolean)((JavascriptExecutor)driver).executeScript(
>                 "var elem = arguments[0],                 " +
>                         "  box = elem.getBoundingClientRect(),    " +
>                         "  cx = box.left + box.width / 2,         " +
>                         "  cy = box.top + box.height / 2,         " +
>                         "  e = document.elementFromPoint(cx, cy); " +
>                         "for (; e; e = e.parentElement) {         " +
>                         "  if (e === elem)                        " +
>                         "    return true;                         " +
>                         "}                                        " +
>                         "return false;                            "
>                 , element);

页面刷新后是否重新捕获元素?首先,我在页面上登陆并选择元素,然后页面将刷新。之后,我将捕获元素以在视口中查看或不查看。是的,重新捕获。我认为您需要根据元素的位置检查window.innerHeight。如果文档高度大于窗口高度,则会出现滚动条。宽度也是如此。。。。使用window.innerWidth