webdriver-js操作滚动条

1.      webdriver高级应用-js操作滚动条

1.滑动页面的滚动条到页面最下面

2.滑动页面的滚动条到页面的某个元素

3.滑动页面的滚动条向下移动某个数量的像素

1.1.    相关方法

scrollBy()

按照指定的像素值来滚动内容。

scrollTo()

把内容滚动到指定的坐标。

scrollBy() 方法可把内容滚动指定的像素数。

语法

scrollBy(xnum,ynum)

参数

描述

xnum

必需。把文档向右滚动的像素数。

ynum

必需。把文档向下滚动的像素数。

scrollTo() 方法可把内容滚动到指定的坐标。

语法scrollTo(xpos,ypos)

参数

描述

xpos

必需。要在窗口文档显示区左上角显示的文档的 x 坐标。

ypos

必需。要在窗口文档显示区左上角显示的文档的 y 坐标。

滚动内容的坐标位置100,500:

function scrollWindow(){
    window.scrollTo(100,500);
}

还有一些方法scrollIntoView是较新的功能,兼容性需确认。

1.2.   
测试代码

#encoding=utf-8
from selenium import webdriver
import unittest
import traceback
import time

class TestDemo(unittest.TestCase):

def setUp(self):
        # 启动IE浏览器
       
self.driver =
webdriver.Ie(executable_path = "e:\\IEDriverServer")

def test_scroll(self):
        url = "http://www.sohu.com/"
       
# 访问selenium官网首页
       
try:
            self.driver.get(url)
            # 使用JavaScript的scrollTo函数和document.body.scrollHeight参数
            # 将页面的滚动条滑动到页面的最下方
           
self.driver.execute_script("window.scrollTo(0,
document.body.scrollHeight);"
)
            # 停顿3秒,用于人工验证滚动条是否滑动到指定的位置。
            # 根据测试需要,可注释下面的停顿代码
           
time.sleep(3)

# 使用JavaScript的scrollIntoView函数将被遮挡的元素滚动到可见屏幕上
            # scrollIntoView(true)表示将元素滚到屏幕中间
            # scrollIntoView(false)表示将元素滚动屏幕底部
           
self.driver.execute_script("document.getElementsByTagName('a')[500].scrollIntoView(true);")
            #for i in
range(10,900):
           
#driver.execute_script("document.getElementsByTagName('a')[%s].scrollIntoView(true);"
%i)

#("document.getElementById('choice').scrollIntoView(true);")
            #
停顿3秒,用于人工验证滚动条是否滑动到指定的位置。
            # 根据测试需要,可注释下面的停顿代码
           
time.sleep(3)

# 使用JavaScript的scrollTo方法,使用0和400横纵坐标参数,
            # 将页面纵向向下滚动400像素
           
self.driver.execute_script("window.scrollBy
(0,400);"
)
            # 停顿3秒,用于人工验证滚动条是否滑动到指定的位置。
            # 根据测试需要,可注释下面的停顿代码
           
time.sleep(3)
        except Exception,
e:
            # 打印异常堆栈信息
           
print
traceback.print_exc()

def tearDown(self):
        # 退出IE浏览器
       
self.driver.quit()

if __name__ == '__main__':
    unittest.main()

webdriver-js操作滚动条的更多相关文章

  1. webdriver高级应用-js操作滚动条

    1.滑动页面的滚动条到页面最下面 2.滑动页面的滚动条到页面的某个元素 3.滑动页面的滚动条向下移动某个数量的像素 #encoding=utf-8 from selenium import webdr ...

  2. selenium 调用JS操作滚动条(java)来解决element not clickable的问题

    今天在运行自动化用例的时候,发现总是某个元素提示not  clickable.分析原因有可能是页面右下角那个大大的top图标,刚好挡住了我要点击的元素.要解决就得拉动页面,就需要操作页面上的滚动条. ...

  3. selenium webdriver——JS操作日历控件

    一般的日期控件都是input标签下弹出来的,如果使用webdriver 去设置日期, 1. 定位到该input 2. 使用sendKeys 方法 比如 但是,有的日期控件是readonly的 比如12 ...

  4. Python selenium webdriver设置js操作页面滚动条

    js2 = "window.scrollTo(0,0);" #括号中为坐标 当不知道需要的滚动的坐标大小时: weizhi2 = driver.find_element_by_id ...

  5. java selenium webdriver处理JS操作窗口滚动条

    未经作者允许,禁止转载!!! java selenium webdriver处理JS操作窗口滚动条 java selenium webdriver处理JS操作窗口滚动条 import org.open ...

  6. Python3+Selenium3+webdriver学习笔记12(js操作应用:滚动条 日历 内嵌div)

    #!/usr/bin/env python# -*- coding:utf-8 -*-'''Selenium3+webdriver学习笔记12(js操作应用:滚动条 日历 内嵌div)'''from ...

  7. python3 + selenium 使用 JS操作页面滚动条

    js2 = "window.scrollTo(0,0);" #括号中为坐标 当不知道需要的滚动的坐标大小时: weizhi2 = driver.find_element_by_id ...

  8. js处理滚动条操作

    在做UI自动化项目的时候,我们不免会遇到一些页面的内容比较多,导致会有滚动条,但是我们又主要操作当前页面看不到的元素,这怎么办呢? 在我们实际操作过程中,我们肯定是直接滑动鼠标操作就可以完成,但是在做 ...

  9. webdriver与JS操作浏览器元素

    1.JQuery的选择器实例 语法 描述 $(this) 当前 HTML 元素 $("p") 所有 <p> 元素 $("p.intro") 所有 c ...

随机推荐

  1. mescroll.js简单的上拉加载、下拉刷新插件,带完整注释

    声明:本插件模仿自mescroll.js,随手所作,仅以注释提供思路,只实现了部分效果,且没有考虑兼容,有兴趣的朋友随意一看.api大家可参考mescroll.js API汇总一文. demo:点我下 ...

  2. Flutter 中的常见的按钮组件 以及自 定义按钮组件

    一.Flutter 中的按钮组件介绍   Flutter 里有很多的 Button 组件很多,常见的按钮组件有:RaisedButton.FlatButton.   IconButton.Outlin ...

  3. 前端——语言——Core JS——《The good part》读书笔记——第九,十章节(Style,Good Features)

    第九章节 本章节不再介绍知识点,而是作者在提倡大家培养良好的编码习惯,使用Good parts of JS,避免Bad parts of JS.它是一篇文章. 本文的1-3段阐述应用在开发过程中总会遇 ...

  4. Day1 面向对象编程与Java核心类

    this变量 在方法内部,可以使用一个隐含的变量this,它始终指向当前实例.如果没有命名冲突,可以省略this. 但是,如果有局部变量和字段重名,那么局部变量优先级更高,就必须加上this. 构造方 ...

  5. DOMException: Failed to execute 'open' on 'XMLHttpRequest': Invalid URL 未能在“xmlhttpRequest”上执行“open”:无效的URL。

    出现这个报错主要是baseurl:http://192.168.*.*/后面的(/)或是请求里面的url:/user/login中前面的(/)有一个漏掉了,导致合成的路径不完整,所以报错:无效的URL

  6. Windows系统重装记录

    材料: u盘(需4g以上) windows官方镜像 附:windows个版本比较 步骤: u盘格式化(为了装启动盘系统需要清空数),备份系统盘所需要的的数据 下载适合自己的官方镜像,可从该网站下载(官 ...

  7. ios开源

    a http://code.cocoachina.com b http://code4app.com c http://www.oschina.net/ios/codingList/ d github ...

  8. ajax传map,后端接收并解析

    前端let map = new Map(); map.set(1, 1); map.set(2, 2); map.set(3, 3); //map转obj let obj= Object.create ...

  9. opencv python:直线检测 与 圆检测

    霍夫直线变换介绍 霍夫圆检测 现实中: example import cv2 as cv import numpy as np # 关于霍夫变换的相关知识可以看看这个博客:https://blog.c ...

  10. The Preliminary Contest for ICPC Asia Xuzhou 2019 M. Longest subsequence(思维+序列自动机)

    序列自动机跑s串 假设k为s和t相同的长度,初始时相同长度为0 取s串中大于t[i]的最左边的位置,用n-tmp+1+i-1更新答案,tmp是最左端的位置 然后去t[i]相等的位置,走到下一位,如果下 ...