操作元素(键盘和鼠标事件)

前言
在前面的几篇中重点介绍了一些元素的定位方法,定位到元素后,接下来就是需要操作元素了。本篇总结了web页面常用的一些操作元素方法,可以统称为行为事件
有些web界面的选项菜单需要鼠标悬停在某个元素上才能显示出来(如百度页面的设置按钮)。

 

一、简单操作

1.点击(鼠标左键)页面按钮:click()
2.清空输入框:clear()
3.输入字符串:send_keys()

from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
# implicitly_wait是隐式等待,作用全局的
driver.implicitly_wait(10)
driver.find_element_by_id("kw").clear() # 清空输入框
driver.find_element_by_id("kw").send_keys("Python自动化") # 输入字符串
driver.find_element_by_id("su").click() #点击

 

二、submit提交表单

1.在前面百度搜索案例中,输入关键字后,可以直接按回车键搜索,也可以点搜索按钮搜索。
2.submit()一般用于模拟回车键

from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
# implicitly_wait是隐式等待,作用全局的
driver.implicitly_wait(10)
driver.find_element_by_id("kw").send_keys("Python自动化") # 输入字符串
# submit()模拟enter键提交表单
driver.find_element_by_id("su").submit()

 

三、键盘操作

1.selenium提供了一整套的模拟键盘操作事件,前面submit()方法如果不行的话,可以试试模拟键盘事件
2.模拟键盘的操作需要先导入键盘模块:from selenium.webdriver.common.keys import Keys
3.举个栗子:模拟enter键,可以用send_keys(Keys.ENTER)

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome()
driver.get("https://123.sogou.com")
# implicitly_wait是隐式等待,作用全局的
driver.implicitly_wait(10)
driver.find_element_by_css_selector("input[autocomplete=off]").send_keys("selenium")
# 模拟enter键作回车按钮
driver.find_element_by_css_selector("input[autocomplete=off]").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)

这里只是列了一些常用的,当然除了键盘事件,也有鼠标事件。

 

四、鼠标悬停事件

1.鼠标不仅仅可以点击(click),鼠标还有其它的操作,如:鼠标悬停在某个元素上,鼠标右击,鼠标按住某个按钮拖动
2.鼠标事件需要先导入模块:from selenium.webdriver.common.action_chains import ActionChains
   perform() 执行所有ActionChains中的行为
   举个栗子:move_to_element() 鼠标悬停
3.这里以百度页面设置按钮为例

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
driver = webdriver.Chrome()
driver.get("https://baidu.com")
driver.implicitly_wait(10)
# 鼠标悬停在搜索设置按钮上
mouse = driver.find_element_by_link_text("设置")
ActionChains(driver).move_to_element(mouse).perform()

4.除了常用的鼠标悬停事件外,还有

右击鼠标:context_click()
双击鼠标:double_click()

依葫芦画瓢,替换上面案例中对应的鼠标事件就可以了
selenium提供了一整套完整的鼠标和键盘行为事件,功能还是蛮强大滴。

 

posted @ 2018-12-28 19:46  风聆  阅读(25)  评论(0)    收藏  举报