zoukankan      html  css  js  c++  java
  • selenium控制滚动条滚动

    UI自动化中经常会遇到元素识别不到,找不到的问题,原因有很多,比如不在iframe里,xpath或id写错了等等;但有一种是在当前显示的页面元素不可见,拖动下拉条后元素就出来了。

    在python中有几种方法解决这种问题

    一、使用js脚本直接操作

    js="var q=document.getElementById('id').scrollTop=10000"

    driver.execute_script(js)

    或:

    js="var q=document.documentElement.scrollTop=10000"

    driver.execute_script(js)

    这里的id为滚动条的id,但js中没有xpath的方法,所以滚动条没有id的网页此方法不适用

    二、使用js脚本将滚动条拖动到指定元素地方

    accounting_unit_element = self.brower.find_element_by_xpath('//span[text()="考核单元"]')

    self.brower.execute_script('arguments[0].scrollIntoView();',accounting_unit_element)

    这种方式,会将accounting_unit_element元素显示到当前frame的顶部位置

    三、发送PAGE_DOWN、END等键盘事件

    END:可以让页面直接下拉到底

    HOME:上拉到顶端

    PAGE_DOWN:小幅度下拉

    PAGE_UP:小幅度上拉

    accounting_unit_element = self.brower.find_element_by_xpath('//span[text()="考核单元"]')

    action=ActionChains(self.brower)

    action.send_keys(Keys.PAGE_DOWN).perform()

    四、滚动条滚动方法

    #下拉到页面底部

    driver.executeScript('window.scrollTo(0,document.body.scrollHeight);')

    #上拉到页面顶端

    driver.executeScript('window.scrollTo(document.body.scrollHeight,0);')

    #下拉到页面1000位置

    driver.executeScript('window.scrollTo(0,1000);')

    #上拉到页面顶端 0,0位置

    driver.executeScript('window.scrollTo(0,0)';)

    #滚动到距离当前位置的0,100位置(向下滚动)

    driver.executeScript('window.scrollBy(0,100)';)

  • 相关阅读:
    【转】【SEE】基于SSE指令集的程序设计简介
    【转】【Asp.Net】asp.net服务器控件创建
    ControlTemplate in WPF ——ScrollBar
    ControlTemplate in WPF —— Menu
    ControlTemplate in WPF —— Expander
    ControlTemplate in WPF —— TreeView
    ControlTemplate in WPF —— ListBox
    ControlTemplate in WPF —— ComboBox
    ControlTemplate in WPF —— TextBox
    ControlTemplate in WPF —— RadioButton
  • 原文地址:https://www.cnblogs.com/sky-cheng/p/14547944.html
Copyright © 2011-2022 走看看