2016-02-09 37 views
0

我正在使用Java和Selenium编写测试。目标应用程序有一些内部页面,我需要滚动到一个页面中的Web元素的顶部。我用:无法滚动到网页元素,因为它被其他元素覆盖

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

,但它没有工作,我也用scrollIntoView但作为元素被另一个元件覆盖它没有工作。

+1

您可能希望将页面的标记添加到您的问题中。就目前而言,没有足够的信息来提供答案。 – Brian

+0

我用'scrollIntoView(false)'它工作 – LoveJavaTwo

+0

这个问题的答案:http://stackoverflow.com/questions/35355643/selenium-webdriver-element-not-clickable-error-in-firefox/35359067#35359067应该帮助你。 – Ardesco

回答

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) 

当然,写一个函数与上面再做可见的元素。 希望有所帮助!