当前位置:   article > 正文

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

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

        在前面的文章中重点介绍了一些元素的定位方法,定位到元素后,就需要操作元素了。本篇总结了web页面常用的一些操作元素方法,可以统称为行为事件。

一、简单操作

  • 点击按钮(鼠标左键):click()
  • 清空输入框:clear()
  • 输入字符串:send_keys('xxx')
  • 获取属性值:get_attribute(attr)
  • 获取标签中的文本内容:text
  • 判断元素是否显示出来:is_displayed()
  • 窗口最大化:driver.maximize_window()
  1. from selenium import webdriver
  2. driver = webdriver.Chrome()
  3. driver.get("https://www.baidu.com")
  4. print(driver.find_element('xpath', '//*[@id="s-top-left"]/a[2]').text)
  5. driver.find_element("id", "kw").clear()
  6. driver.find_element("id", "kw").send_keys('selenium')
  7. driver.find_element("id", "su").click()
  8. print(driver.find_element("id", "kw").get_attribute("value"))
  9. print(driver.find_element("id", "kw").is_displayed())
  10. driver.quit()

二、submit提交表单

        在百度搜索框输入关键字后,可以直接按回车键搜索,也可以点搜索按钮搜索。submit()一般用于模拟回车键。

  1. from selenium import webdriver
  2. driver = webdriver.Chrome()
  3. driver.get("https://www.baidu.com")
  4. driver.find_element("id", "kw").clear()
  5. driver.find_element("id", "kw").send_keys('selenium')
  6. driver.find_element("id", "kw").submit()

三、键盘操作

1)模拟键盘enter键

        键盘操作需要先导入如下模块:from selenium.webdriver.common.keys import Keys,然后使用send_keys(Keys.ENTER)模拟enter键。

  1. from selenium import webdriver
  2. from selenium.webdriver.common.keys import Keys
  3. driver = webdriver.Chrome()
  4. driver.get("https://www.baidu.com")
  5. driver.find_element("id", "kw").clear()
  6. driver.find_element("id", "kw").send_keys('selenium')
  7. # 模拟键盘enter键
  8. driver.find_element("id", "kw").send_keys(Keys.ENTER)
  9. driver.quit()
2)其他常见的键盘操作
  • 键盘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) 

四、鼠标操作

        鼠标不仅可以点击(click),还可执行其他操作,比如:将鼠标悬停在某个元素上、鼠标右击等。

1)鼠标悬停操作

        鼠标操作需要先导入如下模块:from selenium.webdriver.common.action_chains import ActionChains,然后使用move_to_element()实现鼠标悬停,最后使用perform()执行ActionChains中所有行为。这里以百度页面设置按钮为例。

  1. from selenium import webdriver
  2. from selenium.webdriver.common.action_chains import ActionChains
  3. driver = webdriver.Chrome()
  4. driver.get("https://www.baidu.com")
  5. ele = driver.find_element('xpath', '//*[@id="s-usersetting-top"]')
  6. ActionChains(driver).move_to_element(ele).perform()
  7. driver.quit()
2)鼠标其他操作
  • 右击鼠标:context_click()
  • 双击鼠标:double_click()

五、定位悬浮菜单

        通过ajax获取的下拉菜单中的元素对象也可以进行定位,比如百度搜素提示:

  1. from selenium import webdriver
  2. import time
  3. driver = webdriver.Chrome()
  4. driver.get('https://www.baidu.com')
  5. driver.find_element('id', 'kw').send_keys('py')
  6. time.sleep(1)
  7. # 定位悬浮菜单
  8. menus = driver.find_elements('css selector', '.bdsug-overflow.c-line-clamp1')
  9. for i in menus:
  10. print(i.text)
  11. menus[3].click()
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/662393
推荐阅读
相关标签
  

闽ICP备14008679号