IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> Selenium常用操作、鼠标键盘事件、滚动条 -> 正文阅读

[开发测试]Selenium常用操作、鼠标键盘事件、滚动条

Selenium常用操作、鼠标键盘事件、滚动条


1、窗口操作

from selenium import webdriver
import time
 
dr = webdriver.Chrome()
wd = dr.get('http://baidu.com/')
 
# 设置窗口设置
dr.set_window_position(30,50)   # 设置窗口所在屏幕上的位置
time.sleep(1)
dr.set_window_position(80,100)    # 修改窗口所在屏幕上的位置
print(dr.get_window_position())   # 获取窗口在屏幕上的位置坐标
time.sleep(1)
dr.set_window_size(800,300)  # 设置窗口指定大小
print(dr.get_window_size())  # 获取浏览器窗口大小
time.sleep(1)
dr.minimize_window()  # 设置窗口最小化
time.sleep(1)
dr.maximize_window()  # 设置窗口最大化
 
# 浏览器的前进与后退及刷新
dr.find_element_by_css_selector('#form input#kw').send_keys('python')
dr.find_element_by_css_selector('input#su').click()
time.sleep(1)
dr.back()  # 后退
time.sleep(1)
dr.forward()  # 前进
time.sleep(1)
dr.refresh()  # 刷新
time.sleep(1)
 
dr.quit()

2、鼠标事件

在selenium当中除了简单的点击动作外,还有一些稍微复杂的动作,就需要用到ActionChains(动作链)这个子模块来满足需求。 鼠标操作的方法封装在ActionChains类中,为了方便使用,首先需要导入这个类。所有的动作执行后都需要使用perform()方法提交才可以成功。
在这里插入图片描述

from selenium import webdriver
from selenium.webdriver import ActionChains
 
# 鼠标事件(括号中参数为要执行的目标元素)
ActionChains.click()   # 单击
ActionChains.perform()  # 执行所有存储的行为,即对对应操作的提交
ActionChains.context_click()  # 右击
ActionChains.double_click()  # 双击
ActionChains.drag_and_drop(a,b)  # 拖动,a为原元素,b为释放鼠标后的目标元素
ActionChains.move_to_element()   # 鼠标悬停

3、键盘事件

键盘事件操作的方法存放在Keys()类中,需要先导入
from selenium.webdriver.common.keys import Keys

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
 
# 键盘事件(鼠标执行事件都是通过send_keys()命令,括号中的参数指定对应的键盘操作),跟多操作查询官网
Keys.BACK_SPACE  # 删除键(Backspace)
Keys.SPACE   # 空格键
Keys.TAB    # 制表符Tab
Keys.ESCAPE   # 回退键Esc
Keys.ENTER   # 回车
Keys.CONTROL,'a'  # 全选
Keys.CONTROL,'c'  # 复制
Keys.CONTROL,'x'  # 剪切
Keys.CONTROL,'v'  # 黏贴
Keys.F12    # F1——F12

4、滚动条

浏览器滚动条到最下方的代码(适合滚动加载使用),window.scrollTo() 参数,滚动条的横向距离和纵向距离

方法一:

每次滚动到最下方

        # 定义一个初始值表示滚动条与顶部的距离
        original_top = 0
        while True:
            # 循环下拉滚动条
            self.wd.execute_script("window.scrollTo(0,document.body.scrollHeight)")
            time.sleep(0.5)
            # 获取当前滚动条距离顶部的距离
            check_height = self.wd.execute_script(
                "return document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;")
            # 如果滚动条距离上面的距离不再改变,也就是滚动后的距离和之前距离顶部的位置没有改变,说明到达最下方,跳出循环
            if check_height == original_top:
                break
            original_top = check_height

方法二:

每次滚动设定距离

 # 定义一个初始值表示滚动条与顶部的距离
        original_top = 0
        while True:
            # 循环下拉滚动条
            self.wd.execute_script("window.scrollBy(0,500)")
            time.sleep(0.5)
            check_height = self.wd.execute_script(
                "return document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;")
            # 如果滚动条距离上面的距离不再改变,也就是滚动后的距离和之前距离顶部的位置没有改变,说明到达最下方,跳出循环
            if check_height == original_top:
                break
            original_top = check_height

两段代码不同之处在于execute_script中的参数window.scrollTo,和 window.scrollBy ,window.scrollBy(在设置每次滚动设定距离时使用较好),在获取当前滚动条距离顶部的距离时,某些浏览器会有所不同。

其他方向的滚动

滚动到元素对象的“底端”与当前窗口的“底部”对齐 :

execute_script("arguments[0].scrollIntoView(false);",element)

滚动到元素对象的“顶端”与当前窗口的“顶部”对齐:

execute_script("arguments[0].scrollIntoView();",element)
  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-10-27 13:07:37  更:2021-10-27 13:08:19 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 3:00:39-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码