python自动化操作网页游戏_【Selenium02篇】python+selenium实现Web自动化:鼠标操作和键盘操作!...

一、前言

最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新!

这是python+selenium实现Web自动化第二篇博文

二、Selenium第一篇博文地址:

三、Selenium之鼠标操作和键盘操作

1.鼠标事件

在webdriver中,鼠标操作的方法封装在 ActionChains 类提供。ActionChains类提供了鼠标操作的常用方法:

ActionChains(driver),将浏览器驱动 driver 作为参数传入。

(1) perform(): 执行所有 ActionChains 中存储的行为,是对整个操作的提交动作;

(2) context_click(): 右击

(3) double_click(): 双击

(4) drag_and_drop(): 拖动

(5) move_to_element(): 鼠标悬停, 在调用时需要指定元素定位

具体代码如下:

#!/usr/bin/env python#-*- encoding: utf-8 -*-

"""@Time : 2020/4/15

@Author : 公众号:软测之家 更多技术干货,软测视频,面试资料请关注!

@Contact : 软件测试技术群:695458161

@License : (C)Copyright 2017-2019, Micro-Circle

"""

from selenium importwebdriver

from selenium.webdriver.common.action_chains importActionChains

importtime

base_url = 'http://www.baidu.com/'browser = webdriver.Chrome('../tools/chromedriver.exe')

browser.get(base_url)

#定位到悬停元素处

above = browser.find_element_by_link_text('设置')

#对元素执行鼠标悬停操作

ActionChains(browser).move_to_element(above).perform()

time.sleep(5)

#右击

ActionChains(browser).context_click().perform()

time.sleep(5)

#定位到要双击的元素处#double_click_element = browser.find_element_by_link_text('新闻')#print(double_click_element)#ActionChains(browser).move_to_element(double_click_element).double_click().perform()#time.sleep(5)

#拖动元素

drag_and_drop_element = browser.find_element_by_link_text('地图')

ActionChains(browser).move_to_element(drag_and_drop_element).drag_and_drop().perform()

time.sleep(5)

browser.quit()

2.键盘事件

前面的 send_keys() 方法用来模拟键盘输入;keys() 类提供了键盘上几乎所有按键的方法,组合键也是可以的。

常用的键盘操作如下:

send_keys(Keys.BACK_SPACE) 删除键(BackSpace)

send_keys(Keys.SPACE) 空格键(Space)

send_keys(Keys.TAB) 制表键(Tab)

send_keys(Keys.ESCAPE) 回退键(Esc)

send_keys(Keys.ENTER) 回车键(Enter)

send_keys(Keys.CONTROL,'a') 全选(Ctrl+A)

send_keys(Keys.CONTROL,'c') 复制(Ctrl+C)

send_keys(Keys.CONTROL,'x') 剪切(Ctrl+X)

send_keys(Keys.CONTROL,'v') 粘贴(Ctrl+V)

send_keys(Keys.F1) 键盘 F1

……

send_keys(Keys.F12) 键盘 F12

#!/usr/bin/env python#-*- encoding: utf-8 -*-

"""@Time : 2020/4/15

@Author : 公众号:软测之家 更多技术干货,软测视频,面试资料请关注!

@Contact : 软件测试技术群:695458161

@License : (C)Copyright 2017-2019, Micro-Circle

@Desc : None

"""

from selenium importwebdriver

from selenium.webdriver.common.keys importKeys

importtime

base_url = 'https://www.baidu.com/'driver = webdriver.Chrome('../tools/chromedriver.exe')

driver.get(base_url)

#先输入百度

driver.find_element_by_id('kw').send_keys('百度')

#1.删除度

driver.find_element_by_id('kw').send_keys(Keys.BACK_SPACE)

time.sleep(3)

#2.键入空格

driver.find_element_by_id('kw').send_keys(Keys.SPACE)

driver.find_element_by_id('kw').send_keys('加入空格')

time.sleep(5)

#3.ctrl+a 全选输入框里的内容

driver.find_element_by_id('kw').send_keys(Keys.CONTROL, 'a')

time.sleep(3)

#4.ctrl+x 剪切输入框里的内容

driver.find_element_by_id('kw').send_keys(Keys.CONTROL, 'x')

time.sleep(3)

#5. ctrl+v 粘贴剪切的内容

driver.find_element_by_id('kw').send_keys(Keys.CONTROL, 'v')

time.sleep(3)

#6. 回车

driver.find_element_by_id('su').send_keys(Keys.ENTER)

time.sleep(3)

driver.quit()

四、持续更新中请关注

如果你觉得此文对你有帮助,如果你对软件测试、接口测试、自动化测试、面试经验交流感兴趣欢迎加入:

软件测试技术群:695458161,群里发放的免费资料都是笔者十多年测试生涯的精华。还有同行大神一起交流技术哦。

作者:来自公众号:软测之家

出处:https://www.cnblogs.com/csmashang/p/12706696.html

原创不易,欢迎转载,但未经作者同意请保留此段声明,并在文章页面明显位置给出原文链接。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、pythonweb、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、pythonweb、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、pythonweb、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、pythonweb、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、pythonweb、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值