2012-05-02 23 views

回答

0

我不推荐你用任何测试自动化工具自动化这些类型的测试,因为这个测试不会是可靠的,并且由于以下主要原因不会一致传递。

  1. 如何确保特定元素在不同浏览器中不可见?

  2. 如何在不同的屏幕分辨率下运行相同的测试?

  3. 同样在不同尺寸的显示器上运行相同的测试?

0

@haroonzone说了些什么。它不能可靠地完成。

这就是说,我想试试用WebElement上的getLocation()getSize()方法。

结合driver.manage().window().getSize()

或者也许有些玩JavaScript。即window,和innerWidth,document,或者可能是document.body DOM元素。如果您不希望滚动条计入视口,请使用clientWidthclientHeight

This link为IE提供了一些高级建议,因为IE的工作方式明显不同。

试试吧,看看它是怎么回事。

3

我找到了一种方法来检查元素是否可见。

想法是获取页面的1.滚动位置; 2.浏览器可见区域的高度,以及3.元素的y位置。

scroll_position_script = """ 
     var pageY; 
     if (typeof(window.pageYOffset) == 'number') { 
      pageY = window.pageYOffset; 
     } else { 
      pageY = document.documentElement.scrollTop; 
     } 
     return pageY; 
    """ 

    yOffset = self.browser.execute_script(scroll_position_script) 

    js_client_height = "return document.documentElement.clientHeight;" 
    browser_height = self.browser.execute_script(js_client_height) 

    elem_yloc = int(element.location['y']) 
    self.assertTrue(elem_yloc>=yOffset and elem_yloc<=yOffset+browser_height) 
+0

这是一个python特定的代码。 self.browser引用webdriver实例。最后一行确保元素的y位置位于屏幕顶部(yOffset)和底部(yOffset + browser_height)之间, –

相关问题