zoukankan      html  css  js  c++  java
  • selenium操作元素(键盘和鼠标事件)

    前言

    在前面的几篇中重点介绍了一些元素的到位方法,到位到元素后,接下来就是需要操作元素了。本篇总结了web页面常用的一些操作元素方法,可以统称为行为事件
    有些web界面的选项菜单需要鼠标悬停在某个元素上才能显示出来(如百度页面的设置按钮)。

    一、简单操作

        1.点击(鼠标左键)页面按钮:click()

        2.请空输入框:clear()

        3.输入字符串:send_keys()

        4.打开测试部落论坛后,点击放大镜搜索图标,一般为了保证输入的正确性,可以先清空下输入框,然后输入搜索关键字

    二、submit提交表单

        1.在前面百度搜索案例中,输入关键字后,可以直接按回车键搜索,也可以点搜索按钮搜索。

        2.submit()一般用于模拟回车键

        3.但是论坛的搜索,如果用submit的话,会报错,可是又没有搜索点击按钮,怎么办呢?


    三、键盘操作

        1.selenium提供了一整套的模拟键盘操作事件,前面submit()方法如果不行的话,可以试试模拟键盘事件

        2.模拟键盘的操作需要先导入键盘模块:from selenium.webdriver.common.keys import Keys

        3.模拟enter键,可以用send_keys(Keys.ENTER)

        4.其它常见的键盘操作:

    键盘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) 

    这里只是列了一些常用的,当然除了键盘事件,也有鼠标事件


    四、鼠标悬停事件

        1.鼠标不仅仅可以点击(click),鼠标还有其它的操作,如:鼠标悬停在某个元素上,鼠标右击,鼠标按住某个按钮拖到

        2.鼠标事件需要先导入模块:from selenium.webdriver.common.action_chains import ActionChains

    perform() 执行所有ActionChains中的行为

    move_to_element() 鼠标悬停

        3.这里以百度页面设置按钮为例

        4.除了常用的鼠标悬停事件外,还有

    右击鼠标:context_click()

    双击鼠标:double_click()

    依葫芦画瓢,替换上面案例中对应的鼠标事件就可以了

    selenium提供了一整套完整的鼠标和键盘行为事件,功能还是蛮强大滴。

    五、其他相关内容

    1 鼠标 集成在webdriver.ActionChains。单击、双击、右击、拖放等等。

    2 键盘 引入包from selenium.webdriver.common.keys import Keys。键盘上按键几乎都有。

    #coding=utf-8
    # 鼠标 webdriver.ActionChains
    # 键盘 Keys
    
    
    from selenium import webdriver
    from selenium.webdriver.common.keys import Keys
    import time
    
    dr = webdriver.Firefox()
    dr.get("https://www.baidu.com")
    dr.implicitly_wait(10)
    
    moreproduct = dr.find_element_by_css_selector("a.bri")
    webdriver.ActionChains(dr).move_to_element(moreproduct).perform()
    time.sleep(3)
    
    kw = dr.find_element_by_id("kw")
    #webdriver.ActionChains(dr).context_click(kw).perform()  #鼠标右击
    kw.send_keys('测试') #键盘输入
    time.sleep(2)
    #kw.send_keys(Keys.CONTROL,'a') #组合键ctrl+a
    kw.send_keys(Keys.BACK_SPACE) 
    time.sleep(2)
    kw.send_keys(Keys.RETURN)
    time.sleep(2)
    dr.quit()

    在学习过程中有遇到疑问的,可以加selenium(python+java) QQ群交流:646645429

  • 相关阅读:
    Jenkins使用msbuild编译问题记录
    mui的l label下radio问题
    JavaScript {} 和[]的区别 post提交数据
    闭包
    自我介绍
    激活码
    Excel的Xlsb格式的优点及缺点,与xlsx xlsm格式的区别
    oracle 数据类型 number
    iOS 14 更新后微信等应用 发送图片只能选择最近的项目
    plsql 恢复文件
  • 原文地址:https://www.cnblogs.com/pantheryao/p/12066734.html
Copyright © 2011-2022 走看看