Python - selenium_WebDriver 鼠标键盘事件
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()
![](http://files.cnblogs.com/files/BlueSkyyj/zfbd.bmp)
您的资助是我最大的动力!
金额随意,欢迎来赏!
![](http://files.cnblogs.com/files/BlueSkyyj/wxzf.bmp)
您的资助是我最大的动力!
金额随意,欢迎来赏!
如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的
因为,我的写作热情也离不开您的肯定与支持,感谢您的阅读,我是【Blue●Sky】!
【Selenium-Python】技术交流群期待你的加入【 193056556 】