如何在Watir中滚动Web应用程序?
我试过了@browser.send_keys :space
这只会让整个页面失效.但是我在应用程序中有一个滚动,我需要在自动化测试中向下滚动垂直滚动条,请帮助我!
谢谢!
<div dojoattachpoint="containerNode" class="containerNode tabContentPane typeNavigationSingleChild" style="overflow: auto; left: 5px; top: 10px; width: 1549px; height: 535px;">
<div pageid="lifecycle_theme_home_page_dashboard_pageId" id="lifecycle_theme_home_page_dashboard_pageId" style="height: 535px; padding: 0px; width: 1549px;" widgetid="lifecycle_theme_home_page_dashboard_pageId" title="" role="group" class="dijitContentPane wcs-nullLayout">
Run Code Online (Sandbox Code Playgroud)
解决方案1)滚动到最后一个元素
我认为Vinay的方法应该有效.但是,在当前形式中,它假定元素已存在于页面上.我猜你想要的元素只有在滚动得足够远时才能看到.所以你可以做的是滚动到div中的最后一个元素.
的Watir-的webdriver
在Watir-Webdriver中:
div_with_scroll = browser.div(:class => 'containerNode tabContentPane typeNavigationSingleChild')
div_with_scroll.elements.last.wd.location_once_scrolled_into_view
Run Code Online (Sandbox Code Playgroud)
的Watir,经典
在Watir-Classic中,它不同,因为它不使用selenium-webdriver:
div_with_scroll = browser.div(:class => 'containerNode tabContentPane typeNavigationSingleChild')
div_with_scroll.elements.last.document.scrollIntoView
Run Code Online (Sandbox Code Playgroud)
解决方案2)使用ScrollTop属性
作为替代方案,如果上述方法不起作用,则可以设置scrollTop属性以移动div元素的滚动条.这适用于我正在处理的应用程序,其内容仅在您滚动到底部时才加载.
的Watir-的webdriver
要将滚动条跳到底部,理论上应触发以下内容加载,请将scrollTop属性设置为scrollHeight:
div_with_scroll = browser.div(:class => 'containerNode tabContentPane typeNavigationSingleChild')
scroll_bottom_script = 'arguments[0].scrollTop = arguments[0].scrollHeight'
div_with_scroll.browser.execute_script(scroll_bottom_script, div_with_scroll)
Run Code Online (Sandbox Code Playgroud)
要跳回到顶部,请将其scrollTop设置为零.
div_with_scroll = browser.div(:class => 'containerNode tabContentPane typeNavigationSingleChild')
scroll_top_script = 'arguments[0].scrollTop = 0'
div_with_scroll.browser.execute_script(scroll_top_script, div_with_scroll)
Run Code Online (Sandbox Code Playgroud)
您还可以根据需要去往的地方使用任何值.
的Watir,经典
在Watir-Classic中,您可以scrollHeight更直接地设置:
div_with_scroll = browser.div(:class => 'containerNode tabContentPane typeNavigationSingleChild')
#Go to bottom
div_with_scroll.document.scrollTop = div_with_scroll.document.scrollHeight
#Go to top
div_with_scroll.document.scrollTop = 0
Run Code Online (Sandbox Code Playgroud)
如果元素位于页面底部,它将加载更多内容:
browser.element.wd.location_once_scrolled_into_view
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5425 次 |
| 最近记录: |