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