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

时间:2016-02-09 21:55:14

标签: java selenium selenium-webdriver

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

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

但它不起作用,我也使用了scrollIntoView,但由于该元素被另一个元素覆盖,所以它不起作用。

1 个答案:

答案 0 :(得分:0)

更新刚刚看到您的评论,很高兴您能够以更简洁的方式开展工作。

使前景中的元素不可见,然后使用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)

当然,编写一个函数,使元素再次可见。 希望有所帮助!