from selenium import webdriver
#引入ActionChains类 提供了鼠标的操作方法
from selenium.webdriver.common.action_chains import ActionChains from selenium.webdriver.common.keys import Keys
from ReadTxt_demo import readTxt
import time #鼠标键盘事件
'''
ActionChains 常用方法 perform() 执行所有ActionChains 中存储的行为;
context_click() 右击;
double_click() 双击;
drag_and_drop() 拖动;
move_to_element() 鼠标悬停。 ''' driver = webdriver.Firefox() driver.maximize_window()
#打开百度网盘
driver.get("https://pan.baidu.com") #点击 “帐号密码登录”
driver.find_element_by_xpath(".//*[@id='login-middle']/div/div[6]/div[2]/a").click()
# 引入读取文件模块获取用户名密码
# from ReadTxt_demo import readTxt
filePath = 'userInfo.txt'
re_name, re_pwd = readTxt(filePath)
#清空输入框,防止追加输入
driver.find_element_by_name("userName").clear()
username = driver.find_element_by_name("userName")
#输入用户名
username.send_keys(re_name)
#通过键盘敲击tab ,切换到下一个输入框。
username.send_keys(Keys.TAB)
time.sleep(2)
password = driver.find_element_by_name("password")
password.send_keys(re_pwd)
password.send_keys(Keys.ENTER)
time.sleep(3) # 事实证明如果不加隐式等待implicitly_wait(5) 会出现:错误:Message: Unable to locate element:
#所以 implicitly_wait(5) 比sleep 靠谱
driver.implicitly_wait(5)
#测试单击操作
#driver.find_element_by_xpath(".//*[@id='h5Input0']").click() #定位到元素,进行右击操作
#通过 link_text 定位。
right_click = driver.find_element_by_link_text('新建文件夹(1)')
driver.implicitly_wait(5)
#鼠标悬停
ActionChains(driver).move_to_element(right_click).perform()
time.sleep(10)
#对定位到的元素执行右击操作
ActionChains(driver).context_click(right_click).perform()
#.//*[@id='layoutMain']/div[2]/div[3]/div/div/dd[1]/div[2]/div[1] #鼠标拖动操作,
#定义原位置、目标位置=right_click
driver.implicitly_wait(5)
file_source = driver.find_element_by_xpath(".//*[@id='layoutMain']/div[2]/div[3]/div/div/dd[1]/div[2]/div[1]")
driver.implicitly_wait(5)
ActionChains(driver).drag_and_drop(file_source,right_click).perform()
driver.implicitly_wait(5) #鼠标双击
ActionChains(driver).double_click(right_click).perform()
time.sleep(13)
'''
from selenium.webdriver.common.action_chains import ActionChains
导入提供鼠标操作的 ActionChains 类
ActionChains(driver)
调用ActionChains()类,将浏览器驱动driver作为参数传入
context_click(right_click)
context_click()方法用户模拟鼠标右键操作,在调用时需要指定元素定位
perform()
执行所有ActionChains中存储的行为,可以理解为对整个操作的提交动作。 '''
#下面时 键盘操作


driver.quit()
#driver.close()
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time ''' from selenium.webdriver.common.keys import 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)博客园---虫师
http://fnng.cnblogs.com 52
send_keys(Keys.CONTROL,'x') 剪切(Ctrl+X)
send_keys(Keys.CONTROL,'v') 粘贴(Ctrl+V)
Keys 类所提供的按键请查阅 webdriver API. ''' driver = webdriver.Firefox()
url = "http://www.hao123.com"
driver.maximize_window()
driver.get(url) driver.implicitly_wait(3)
driver.find_element_by_id('search-input').clear()
driver.find_element_by_id('search-input').send_keys('seleniumm')
driver.implicitly_wait(3)
#回删
driver.find_element_by_id('search-input').send_keys(Keys.BACK_SPACE)
driver.implicitly_wait(3)
#追加空格
driver.find_element_by_id('search-input').send_keys(Keys.SPACE)
driver.implicitly_wait(3)
driver.find_element_by_id('search-input').send_keys('教程')
driver.implicitly_wait(3)
#全选内容
driver.find_element_by_id('search-input').send_keys(Keys.CONTROL,'a')
driver.implicitly_wait(3)
#剪切内容
driver.find_element_by_id('search-input').send_keys(Keys.CONTROL,'x')
driver.implicitly_wait(3) #粘贴内容
driver.find_element_by_id('search-input').send_keys(Keys.CONTROL,'v')
driver.implicitly_wait(3) #回车代替 点击
driver.find_element_by_id('search-input').send_keys(Keys.ENTER)
driver.implicitly_wait(3) time.sleep(10) driver.quit()

Python - selenium_WebDriver 鼠标键盘事件的更多相关文章

  1. Python——pyHook监听鼠标键盘事件

    pyHook包为Windows中的全局鼠标和键盘事件提供回调. 底层C库报告的信息包括事件的时间,事件发生的窗口名称,事件的值,任何键盘修饰符等. 而正常工作需要pythoncom等操作系统的API的 ...

  2. Linux 模拟 鼠标 键盘 事件

    /************************************************************************ * Linux 模拟 鼠标 键盘 事件 * 说明: ...

  3. Tkinter 鼠标键盘事件(一)

    一: 鼠标事件 <Button-1>                                                                     鼠标左键单击 ...

  4. Selenium4.0+Python3系列(四) - 常见元素操作(含鼠标键盘事件)

    一.写在前面 上篇文章介绍的是关于浏览器的常见操作,接下来,我们将继续分享关于元素的常见操作,建议收藏.转发! 二.元素的状态 在操作元素之前,我们需要了解元素的常见状态. 1.常见元素状态判断,傻傻 ...

  5. Tkinter 鼠标键盘事件(二)

    一个Tkinter主要跑在mainloop进程里.Events可能来自多个地方,比如按键,鼠标,或是系统事件. Tkinter提供了丰富的方法来处理这些事件.对于每一个控件Widget,你都可以为其绑 ...

  6. 由chrome剪贴板问题研究到了js模拟鼠标键盘事件

    写在前面 最近公司在搞浏览器兼容的事情,所有浏览器兼容的问题不得不一个人包了.下面来说一下今天遇到的一个问题吧 大家都知道IE下面如果要获得剪贴板里面的信息的话,代码应该如下所示 window.cli ...

  7. c# 使用hook来监控鼠标键盘事件的示例代码

    如果这个程序在10几年前,QQ刚刚兴起的时候,有了这个代码,就可实现盗号了. 当然使用钩子我们更多的是实现"全局快捷键"的需求. 比如 程序最小化隐藏后要"某快捷键&qu ...

  8. openGL 初试 绘制三角形 和添加鼠标键盘事件

    code: #include <gl/glut.h> #include <stdlib.h> void render(void); void keyboard(unsigned ...

  9. python模拟鼠标键盘操作 GhostMouse tinytask 调用外部脚本或程序 autopy右键另存为

    0.关键实现:程序窗口前置 python 通过js控制滚动条拉取全文 通过psutil获取pid窗口句柄,通过win32gui使程序窗口前置 通过pyauto实现右键菜单和另存为操作 1.参考 aut ...

随机推荐

  1. 半导体巨头青睐物联网领域 众强联手打造MCU生态系统

    随着万物互联的时代到来,众多半导体巨头纷纷转战物联网领域.早在十年前,意法半导体曾将STM32推向市场,意法半导体对32位MCU在物联网方面的应用在两年前就已展开攻势. 4月25日,历经两届盛况的ST ...

  2. SourceTree使用介绍

    SourceTree比命令行更容易操作,能更直观看到发生了什么.但是没有哪一家git图形化软件能完成git的所有操作,封装后的使用也隐藏了git的一些细节,在图形化工具出现一些非常罕见的情况时,还是需 ...

  3. MVC 控制器之间传值学习——session

    刚接触MVC不久,写的一些代码自己都不忍心看下去.路漫漫其修远兮,宝宝还需努力!之前只用过Session做登录时用户信息的储存,今天对集合类数据做了小小的尝试:利用session在控制器之间传值,以减 ...

  4. Spring Boot Oauth2

    Oauth2是描述无状态授权的协议(授权框架),因为是无状态,所以我们不需要维护客户端和服务器之间的会话. Oauth2的工作原理: 此协议允许第三方客户端代表资源所有者访问受保护资源,Oauth2有 ...

  5. 【转】JMeter基础之——录制脚本

    Jmeter 是一个非常流行的性能测试工具,虽然与LoadRunner相比有很多不足,比如:它结果分析能力没有LoadRunner详细:很它的优点也有很多: ● 开源,他是一款开源的免费软件,使用它你 ...

  6. ES之一:Elasticsearch6.4 windows安装 head插件ik分词插件安装

    准备安装目标:1.Elasticsearch6.42.head插件3.ik分词插件 第一步:安装Elasticsearch6.4 下载方式:1.官网下载 https://www.elastic.co/ ...

  7. 使用Tomcat+Redis来实现集群部署中的Session共享问题

    一.工作中因为要使用到Tomcat集群部署,此时就涉及到了Session共享问题,主要有三种解决方案: 1.使用数据库来存储Session 2.使用Cookie来存储Session 3.使用Redis ...

  8. maven学习0 常用命令学习

    mvn clean install -Dmaven.test.skip=truemaven的package与install命令区别: package是把jar打到本项目的target下,而instal ...

  9. Patator-一款很好用的爆破工具

    项目地址:https://github.com/lanjelot/patator 打开文件夹 运行一下文件查看帮助 python patator.py --help 这里有很多的爆破选项,就不一一截图 ...

  10. Java面向对象-方法的重载

    Java面向对象-方法的重载 所谓方法的重载, 类里面有两个或者多个重名的方法,但是方法的参数个数.类型.顺序至少有一个不一样,这时候局构成方法重载: 上代码: package com.java123 ...