鼠标与键盘操作事件

curiousL 2020-06-01

鼠标事件

鼠标事件包含在ActionChains类中,导入时只需要:

from selenium.webdriver.common.action_chains import ActionChains

导入类即可:

常用的方法有:

  • context_click() ?——右键单击

  • double_click() ?——双击

  • drag_and_drop(鼠标按下的元素,鼠标释放的元素) ?——拖动

  • move_to_element() ?——鼠标悬停在一个元素上

  • click_and_hold() ?——按下鼠标左键在一个元素上

需要注意的是,这些ActionChains类中对鼠标的操作,在执行的时候需要加perform才可以执行。

来一段代码,大家看一下效果:

# coding: utf-8
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.action_chains import ActionChainsoptions = webdriver.ChromeOptions()
options.add_argument(‘disable-infobars‘)
driver = webdriver.Chrome(chrome_options=options)
# driver = webdriver.Chrome()
driver.get("http://www.jrj.com.cn/")
sleep(2)
source = driver.find_element_by_xpath(".//*[@id=‘appherw‘]")
ActionChains(driver).move_to_element(source).perform()

?额,不得不说,我踩到坑了……大家也发现了,我用的是chrome浏览器,没错,因为Firefox就是拖动不了……我百度了一大圈也没找到原因。只能和大家说一下我的chrome版本了;此外如果大家不像我那样写而是直接webdriver.Chrom(),运行是没问题的,但是chrome打开时会显示一行字——“chrome正受到自动测试软件的控制”。用chrome的话就得安装chromedriver了。

鼠标与键盘操作事件

鼠标与键盘操作事件

上面的代码运行后会发现下面显示出了二维码——这正是鼠标移动上去时候的响应。
再提醒大家一遍,鼠标的操作要有.perform()哦。

键盘事件

键盘事件,就是键盘上的一些操作,比如Ctrl +C,Ctrl+V,Ctrl+X等。
对键盘的操作需要导入另一个键盘的库:

from selenium.webdriver.common.keys import Keys

举个例子,你要在搜索框输入“自动化测试”,但是现在又想搜“自动化测”,就是删掉一个字,我们知道,就是摁一下键盘上的Backspace键就可以了,这时候你就需要键盘操作了:

driver.find_element_by_xpath("xpath的定位").send_keys(Keys.BACK_SPACE)

如果对软件测试、接口测试、自动化测试、面试经验交流。感兴趣可以加软件测试交流:1085991341,还会有同行一起技术交流。
这样就可以了。
接下来来段代码,大家就记住了:

# coding: utf-8
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.keys import Keys

driver = webdriver.Firefox()
driver.get("http://www.baidu.com")
# 输入框输入内容
driver.find_element_by_id("kw").send_keys("selenium")
sleep(3)
# 删除多输入的一个 m
driver.find_element_by_id("kw").send_keys(Keys.BACK_SPACE)
sleep(3)
# 继续输入“教程”
driver.find_element_by_id("kw").send_keys(u"教程")
sleep(3)
# ctrl+a 全选输入框内容
driver.find_element_by_id("kw").send_keys(Keys.CONTROL,‘a‘)
sleep(3)
# ctrl+x 剪切输入框内容
driver.find_element_by_id("kw").send_keys(Keys.CONTROL,‘x‘)
sleep(3)
# 输入框重新输入内容,搜索
driver.find_element_by_id("kw").send_keys(Keys.CONTROL,‘v‘)
sleep(3)
# 通过回车键盘来代替点击操作
driver.find_element_by_id("su").send_keys(Keys.ENTER)
sleep(3)
driver.quit()

了解以上内容就差不多了,如果遇到新的需要只需要百度一下,要知道我们不可能把所有东西都记在脑子里的,只要入门了,知道怎么百度了,那目的就算是达到了,当然记住的话就更好了。
以上内容希望对你有帮助,有被帮助到的朋友欢迎点赞,评论。

相关推荐