Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.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/3/heroku/2.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
Java 无法滚动到web元素,因为它已被其他元素覆盖_Java_Selenium_Selenium Webdriver - Fatal编程技术网

Java 无法滚动到web元素,因为它已被其他元素覆盖

Java 无法滚动到web元素,因为它已被其他元素覆盖,java,selenium,selenium-webdriver,Java,Selenium,Selenium Webdriver,我正在使用Java和Selenium编写一个测试。目标应用程序有一些内部页面,我需要滚动到其中一个页面中web元素的顶部。我用过: jse.executeScript("arguments[0].scrollTop", element); 但它不起作用,我也使用了scrollIntoView,但它不起作用,因为该元素被另一个元素覆盖。更新刚刚看到您的评论,很高兴您能以更简洁的方式使用它 使前景中的元素不可见,然后使用scrollIntoView() …类似于jse.executeScript

我正在使用Java和Selenium编写一个测试。目标应用程序有一些内部页面,我需要滚动到其中一个页面中web元素的顶部。我用过:

jse.executeScript("arguments[0].scrollTop", element);

但它不起作用,我也使用了
scrollIntoView
,但它不起作用,因为该元素被另一个元素覆盖。

更新刚刚看到您的评论,很高兴您能以更简洁的方式使用它


使前景中的元素不可见,然后使用scrollIntoView()

…类似于
jse.executeScript('arguments[0].style.visibility=“hidden”,element)

在我的Python解决方案中,它应该可以轻松翻译:

def makeInvisible(driver, element):
    driver.execute_script('arguments[0].style.visibility="hidden"', element)
我通常通过xpath获取元素,然后将其传递给该函数。您还可以再次检查是否使用以下等效项隐藏了某些内容:

def isInvisible(driver, element):
    return driver.execute_script('return window.getComputedStyle(arguments[0]).display === \'none\'', element)
当然,用上面的方法编写一个函数,使元素再次可见。
希望有帮助

您可能需要将页面的标记添加到问题中。目前,没有足够的信息提供答案。我使用了
scrollIntoView(false)
,它解决了这个问题的答案:应该对你有帮助。