鼠标与键盘操作事件
鼠标事件包含在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()
了解以上内容就差不多了,如果遇到新的需要只需要百度一下,要知道我们不可能把所有东西都记在脑子里的,只要入门了,知道怎么百度了,那目的就算是达到了,当然记住的话就更好了。
以上内容希望对你有帮助,有被帮助到的朋友欢迎点赞,评论。