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

时间:2022-03-16 13:50:14

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

简单操作

  • 鼠标左键点击:click()
  • 清空输入框:clear()
  • 输入字符串:send_key(),如果发送中文,前面需要加U,windows系统是GBK编码,我们脚本是UTF-8,需要转换成Unicode国际编码

Submit提交表单

  • submit()一般用于模拟回车键

 

键盘操作

 

  • 模拟键盘操作需要导入键盘模块from selenium.webdriver.common.keys import keys
  • 模拟enter键,可以用send_keys(Keys.ENTER)
  • 键盘键F1-F12:send_key(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)

鼠标悬停事件

  • 鼠标不仅仅有click事件,还有鼠标停留在某个元素上,鼠标右击,鼠标拖动某个按钮
  • 鼠标事件需要先导入from selenium.webdriver.common.action_chains import ActionChains
  • perform()执行所有ActionChains中的行为
  • 鼠标悬停:move_to_element()
  • 右击鼠标:double_click()
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
import time

driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")
time.sleep(2)
#窗口最大化
driver.maximize_window()

set = driver.find_element_by_xpath('//div[@id="u1"]/a[@name="tj_settingicon"]')
ActionChains(driver).move_to_element(set).perform()

time.sleep(1)
ActionChains(driver).context_click().perform()
time.sleep(1)
driver.find_element_by_name("wd").click()
time.sleep(1)
driver.find_element_by_name("wd").send_keys("abc")
time.sleep(1)
driver.find_element_by_name("wd").clear()
time.sleep(1)
driver.find_element_by_name("wd").send_keys(u"测试输入中文")
time.sleep(1)
driver.find_element_by_name("wd").submit()

driver.quit()