博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python - selenium_WebDriver 鼠标键盘事件
阅读量:4641 次
发布时间:2019-06-09

本文共 3737 字,大约阅读时间需要 12 分钟。

 

 

 

from selenium import webdriver#引入ActionChains类  提供了鼠标的操作方法from selenium.webdriver.common.action_chains import  ActionChainsfrom selenium.webdriver.common.keys import Keysfrom ReadTxt_demo import readTxtimport 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 readTxtfilePath = '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_clickdriver.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 webdriverfrom selenium.webdriver.common.keys import Keysimport 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 52send_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()

 

转载于:https://www.cnblogs.com/Skyyj/p/6687028.html

你可能感兴趣的文章
LDAP & it's implementation
查看>>
Apache HttpComponents中的cookie匹配策略
查看>>
冰封的海盗攻略
查看>>
python from entry to abandon
查看>>
Netty4.x中文教程系列(四) 对象传输
查看>>
linux下find命令使用举例、
查看>>
GET请求在Tomcat中的传递及URI传递
查看>>
ubuntun 服务器与Mac
查看>>
重温JSP学习笔记--与日期数字格式化有关的jstl标签库
查看>>
java-Date-DateFormat-Calendar
查看>>
封装CLLocationManager定位获取经纬度
查看>>
我的第一篇博客-(Eclipse中或Myeclipse中如果不小心删除了包那可怎么办?)
查看>>
对easyui datagrid组件的一个小改进
查看>>
类似以下三图竞争关系的IT企业
查看>>
Qt5启动画面
查看>>
清明节
查看>>
谈谈一些有趣的CSS题目(七)-- 消失的边界线问题
查看>>
ubuntu如何安装svn客户端?
查看>>
arcgis for javascript (3.17)
查看>>
【MySQL】Win7下修改MySQL5.5默认编码格式
查看>>