【Selenium核心技术篇】Selenium鼠标和键盘事件

前言

 

一直想学习自动化测试,但是都没行动,业余时间学习零零碎碎并记录20210415

【Selenium核心技术篇】包含以下内容:

  1. Selenium实现元素定位(8种)
  2. Selenium WebDriver
  3. Selenium WebElement
  4. Selenium操作from表单
  5. Selenium操作checkbox和radiobutton
  6. Selenium操作下拉列表
  7. Selenium处理弹框
  8. Selenium三种等待方式
  9. Selenium等待条件
  10. Selenium鼠标和键盘事件
  11. Selenium执行JavaScript脚本
  12. Selenium屏幕截图
  13. Selenium之frame的切入和切出

Selenium鼠标和键盘事件

selenium中的鼠标和键盘事件被封装在ActionChains类中,正确的使用方法是:

ActionChains(driver).click(btn).perform()

下面列出ActionChains中常用方法:

鼠标方法。使用的时候后面带.perform() 方法描述
click(on_element=None)单击鼠标左键
click_and_hold(on_element=None)按住鼠标左键在元素上,点击并且不释放

context_click(on_element=None)

单击鼠标右键

 double_click(on_element=None)

双击鼠标左键

drag_and_drop(source, target)

鼠标拖动,拖拽某个元素然后松开。source: 鼠标拖动的源元素。target: 鼠标释放的目标元素。

drag_and_drop_by_offset(source, xoffset,yoffset)

鼠标拖动,拖拽某个坐标然后松开
release(on_element=None)释放鼠标左键

move_to_element(to_element)  

鼠标悬停(移动到某个元素)。to_element:指定元素

move_to_element_with_offset(to_element,xoffset,yoffset) 

鼠标从当前位置移动到距某个坐标(左上角坐标)多少距离的位置

move_to_offset(xoffset,yoffset) 

鼠标从当前位置移动到某个坐标
perform()提交已保存的操作(执行键中的所有动作)
键盘方法
key_down(value,element=None)按下键盘上的某个按键
key_up(value,element=None)松开键盘上的某个按键
send_keys_to_element(elemernt,*keys_to_send)发送某个键到指定元素
send_keys(Keys.BACK_SPACE)删除键(BackSpace )
send_keys(Keys.SPACE)空格键(Space)
send_keys(Keys.TAB)制表键(Tab)
send_keys(Keys.ESCAPE)回退键(Esc)
send_keys(Keys.ENTER)回车键(Enter)

send_keys(Keys.CONTROL,'a')

全选(Ctrl+A)。注意系统,MAC的快捷键就不一样,应为:send_keys(Keys.COMMAND,'a'),其他类似。
 
send_keys(Keys.CONTROL,'c')复制(Ctrl+C)
send_keys(Keys.CONTROL,'x')剪切(Ctrl+X)

send_keys(Keys.CONTROL,'v')

粘贴(Ctrl+V)
send_keys(Keys.F1)键盘F1
 …
 send_keys(Keys.F12)
键盘F12

实操

1、用这个页面测鼠标点击事件:http://sahitest.com/demo/clicks.htm

2、Selenium鼠标和键盘事件练习

from selenium import webdriver
from time import sleep

from selenium.webdriver import ActionChains
from selenium.webdriver.common.keys import Keys


class casetest(object):
    def __init__(self):
        self.driver = webdriver.Chrome()
        self.driver.maximize_window()
        # self.driver.get('http://sahitest.com/demo/clicks.htm')  #鼠标用,执行键盘方法的时候注释,用百度

    def test_mourse(self):
        btn = self.driver.find_element_by_xpath('/html/body/form/input[2]')
        ActionChains(self.driver).double_click(btn).perform()  #双击左键
        sleep(2)

        btn = self.driver.find_element_by_xpath('/html/body/form/input[3]')
        ActionChains(self.driver).click(btn).perform()   #单击
        sleep(2)

        btn = self.driver.find_element_by_xpath('/html/body/form/input[4]')
        ActionChains(self.driver).context_click(btn).perform()   #右击
        sleep(2)

        self.driver.quit()

    def test_keys(self):
        self.driver.get('http://www.baidu.com')
        kw = self.driver.find_element_by_id('kw')
        kw.send_keys('留白')
        # windos系统
        # kw.send_keys(Keys.CONTROL,'a')
        # sleep(3)
        # kw.send_keys(Keys.CONTROL,'x')
        # sleep(3)
        # kw.send_keys(Keys.CONTROL,'v')
        # sleep(3)

        # Mac系统快捷键不一样
        kw.send_keys(Keys.COMMAND,'a')
        sleep(3)
        kw.send_keys(Keys.COMMAND,'x')
        sleep(3)
        kw.send_keys(Keys.COMMAND,'v')
        sleep(3)

    def test_move(self):
        self.driver.get('http://www.baidu.com')
        el = self.driver.find_element_by_link_text('新闻')
        print(el)

        # 鼠标移动到新闻,然后点击鼠标左键
        ActionChains(self.driver).move_to_element(el).click(el).perform()

if __name__ == '__main__':
    case = casetest()
    # case.test_mourse()
    # case.test_keys()
    case.test_move()

“永不放弃,总有希望在前面等待!”送给自己,也送给正在阅读文章的博友们~

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小慌慌

感谢博友的鼓励,快乐分享~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值