在前面的几篇中重点介绍了一些元素的到位方法,到位到元素后,接下来就是需要操作元素了。本篇总结了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()