selenium+Python(鼠标和键盘事件)
本篇总结了 web 页面常用的一些操作元素方法,可以统称为行为事件
有些 web 界面的选项菜单需要鼠标悬停在某个元素上才能显示出来(如百度页面的设置按钮)。
1 简单操作
1.点击(鼠标左键)页面按钮:click()
2.请空输入框:clear()
3.输入字符串:send_keys()
4.打开测试部落论坛后,点击放大镜搜索图标,一般为了保证输入的正确性,可以先清
空下输入框,然后输入搜索关键字
1 2 3 4 5 6 7 8 | # coding:utf-8 from selenium import webdriver driver = webdriver.Firefox() driver.get( "http://www.baidu.com " ) driver.implicitly_wait( 10 ) driver.find_element_by_id( "kw" ).click() driver.find_element_by_id( "kw" ).clear() driver.find_element_by_id( "kw" ).send_keys( "selnium" ) |
2.submit 提交表单
1.在前面百度搜索案例中,输入关键字后,可以直接按回车键搜索,也可以点搜索按钮搜索。
2.submit()一般用于模拟回车键
1 2 3 4 5 6 7 8 | # coding:utf-8 from selenium import webdriver driver = webdriver.Firefox() driver.get( "http://www.baidu.com " ) driver.implicitly_wait( 10 ) driver.find_element_by_id( "kw" ).send_keys( "selnium" ) # submit() 模拟enter键提交表单 driver.find_element_by_id( "kw" ).submit() |
3 键盘操作
1.selenium 提供了一整套的模拟键盘操作事件,前面 submit()方法如果可行的话,可
以试试模拟键盘事件
2.模拟键盘的操作需要先导入键盘模块:from selenium.webdriver.common.keys
import Keys
3.模拟 enter 键,可以用 send_keys(Keys.ENTER)
1 2 3 4 5 6 7 8 9 10 11 | # coding:utf-8 from selenium import webdriver from selenium.webdriver.common.keys import Keys driver = webdriver.Firefox() driver.get( "http://www.baidu.com " ) driver.implicitly_wait( 10 ) driver.find_element_by_id( "kw" ).click() driver.find_element_by_id( "kw" ).clear() driver.find_element_by_id( "kw" ).send_keys( "selnium" ) # 模拟enter键操作回车按钮 driver.find_element_by_id( "kw" ).send_keys(Keys.ENTER) |
4.其它常见的键盘操作:
键盘 F1 到 F12:send_keys(Keys.F1) 把 F1 改成对应的快捷键
复制 Ctrl+C:send_keys(Keys.CONTROL,'c')
粘贴 Ctrl+V:send_keys(Keys.CONTROL,'v')
全选 Ctrl+A:send_keys(Keys.CONTROL,'a')
剪切 Ctrl+X:send_keys(Keys.CONTROL,'x')
制表键 Tab: send_keys(Keys.TAB)
这里只是列了一些常用的,当然除了键盘事件,也有鼠标事件
4 鼠标悬停事件
1.鼠标不仅仅可以点击(click),鼠标还有其它的操作,如:鼠标悬停在某个元素上,鼠标右击,鼠标按住某个按钮拖到
2.鼠标事件需要先导入模块:from selenium.webdriver.common.action_chainsimport ActionChains
perform() 执行所有 ActionChains 中的行为
move_to_element() 鼠标悬停
3.这里以百度页面设置按钮为例
4.除了常用的鼠标悬停事件外,还有
右击鼠标:context_click()
双击鼠标:double_click()
1 2 3 4 5 6 7 8 9 10 11 | # coding:utf-8 from selenium import webdriver # 引入ActionChains类 from selenium.webdriver.common.action_chains import ActionChains # 使用方法 brower = webdriver.Firefox() brower.get( "http://www.baidu.com" ) # 定位到需要右击的元素并赋值给rigth_click right_click = brower.find_element_by_id( "kw" ) # 对定位到的元素进行右击操作。 ActionChains(brower).context_click(right_click).perform() |