Selenium学习之鼠标键盘操作

本文详细介绍了如何使用Selenium的ActionChains模块进行鼠标和键盘操作,包括click点击、drag拖拽、Key发送键以及move移动等。通过实例代码展示了单击、双击、拖放、键盘输入等操作,并解释了相关注意事项和附加知识点。
摘要由CSDN通过智能技术生成
 

       在测试的时候,我们不可避免地需要用到鼠标键盘操作,那么在自动化测试中如何编写对应的代码呢?这就不得不提到Selenium中的ActionChains模块。ActionChains,顾名思义就是动作链的意思。通常我们可以用这样的格式去进行鼠标的单击左键操作:

ActionChains(driver).click(element).perform()

        要注意的是,一定要在操作后面加上perform()方法——执行动作链,否则操作不会执行。那么ActionChains都有哪些主要的属性和方法呢?首先毫无疑问的是我们需要引入ActionChains和Keys模块,Keys中包含一些特殊的键盘按键,可以让我们引用,比如:Ctrl、F1~F12,A~Z等等。引入这两个模块的代码如下:

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

(一)click点击

       主要包括 click 单击鼠标左键、double_click 双击鼠标左键、context_click 单击鼠标右键 这三个方法,这里我分别用三个例子来一一对他们进行代码验证:

1.单击鼠标左键百度首页的“新闻”,打开新闻标签页

2.双击鼠标左键百度首页的 “地图”,打开地图标签页

3.单击鼠标右键百度首页的“视频”,并且按照弹出的菜单框,键盘点击“T”,打开视频标签页

1、click(on_element=None)   单击鼠标左键

(1)具体代码操作

         单击鼠标左键  百度首页的“新闻”,打开新闻标签页,通过for循环切换到新闻页,验证标题中是否包含特定内容“新闻”,打印结果。

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

class TestCase(object):

    def __init__(self):
        self.driver = webdriver.Chrome()
        self.url = 'http://www.baidu.com'
        self.driver.maximize_window()
        self.driver.get(self.url)
        self.mainWindow = self.driver.current_window_handle

    def test_click(self):
        news = self.driver.find_element_by_css_selector('#s-top-left > a') #“新闻”元素
        ActionChains(self.driver).click(news).perform() #在元素上单击鼠标左键,打开新闻网页
        sleep(2)
        self.test_open_page('新闻')
        self.driver.switch_to.window(self.mainWindow) #切回百度首页
    
    #用来判断是否打开特定标签页
    def test_open_page(self, title_in):
        for handle in self.driver.window_handles:
            self.driver.switch_to.window(handle)
            if title_in in self.driver.title:
                print('It is true, open page', self.driver.title)
                break

if __name__ == '__main__':
    test = TestCase() #实例化TestCase类
    test.test_click() #调用测试方法

(2)控制台结果

          已打开新闻标签页,如下图所示:

          

(3)注意事项及附加知识点

         要注意的是,在上面的代码中,用到了一个test_open_page()方法,大家肯定觉得奇怪,点击“新闻”元素后,新闻标签页不是已经打开了也显示在最前面了,为什么还要使用switch_to.wind

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值