Posts 记录web自动化窗口滑动与截图
Post
Cancel

记录web自动化窗口滑动与截图

需求:

加载页面后自动滑动窗口截取页面视图信息。

实现:

使用selenium.execute_script调用JavaScript操作,并使用selenium.get_screenshot_as_file截取页面视图。

用知识的土壤来填埋这些坑洞

get_screenshot_as_file(filename/full_path):

获取截屏png图片,参数是文件的绝对路径,截屏必须是.png图片。如果只给文件名,截屏会存在项目的根目录下。

execute_script()

selenium里面也没有直接的方法去控制滚动条,需要调用js来实现,该模块函数可以直接执行js的脚本。

1
2
target = driver.find_element_by_id("id")
driver.execute_script("arguments[0].scrollIntoView();", target) #拖动到可见的元素去

JavaScript

是一种运行在客户端的脚本语言,不需要编译,运行过程中由JS解释器(JS引擎)逐行来进行解释并执行,实现前端业务逻辑和页面控制等功能。

arguments

是javascript的一个内置对象,是一个类数组(就是长的比较像数组,但是欠缺一些数组的方法,可以用slice.call转换),其存储的是函数的参数

scrollIntoView

是一个与页面(容器)滚动相关的API

1
2
3
element.scrollIntoView() 参数默认为true
参数为true调用该函数页面发送滚动使element的顶部与视图(容器)顶部对齐
参数为false使element的底部与视图(容器)底部对齐

参考资料

Selenium截屏和录屏
selenium滚动方法
arguments详解
execute_script详解 execute_script案例

This post is licensed under CC BY 4.0 by the author.

Contents

记录TCP window full和TCP zero window报文排查

记录一次绿盟WAF误判SQL injection排查

Comments powered by Disqus.