美文网首页
python3+selenium实现Web自动化3:鼠标操作和键

python3+selenium实现Web自动化3:鼠标操作和键

作者: C1R2 | 来源:发表于2021-03-15 22:24 被阅读0次

    一、Selenium之鼠标操作和键盘操作

    1.鼠标事件
    在webdriver中,鼠标操作的方法封装在 ActionChains 类提供。ActionChains类提供了鼠标操作的常用方法:

    ActionChains(driver),将浏览器驱动 driver 作为参数传入。
    
    (1) perform(): 执行所有 ActionChains 中存储的行为,是对整个操作的提交动作;
    (2) context_click(): 右击
    (3) double_click(): 双击
    (4) drag_and_drop(): 拖动
    (5) move_to_element(): 鼠标悬停, 在调用时需要指定元素定位
    

    具体代码如下:

    #!/usr/bin/env python # -*- encoding: utf-8 -*-
    
    from selenium import webdriver
    from selenium.webdriver.common.action_chains import ActionChains
    import time
    
    base_url = 'http://www.baidu.com/' browser = webdriver.Chrome('../tools/chromedriver.exe')
    browser.get(base_url)
    
    # 定位到悬停元素处
    above = browser.find_element_by_link_text('设置')
    # 对元素执行鼠标悬停操作
    ActionChains(browser).move_to_element(above).perform()
    time.sleep(5)
    
    # 右击
    ActionChains(browser).context_click().perform()
    time.sleep(5)
    
    # 定位到要双击的元素处 # double_click_element = browser.find_element_by_link_text('新闻') # print(double_click_element) # ActionChains(browser).move_to_element(double_click_element).double_click().perform() # time.sleep(5)
    
    # 拖动元素
    drag_and_drop_element = browser.find_element_by_link_text('地图')
    ActionChains(browser).move_to_element(drag_and_drop_element).drag_and_drop().perform()
    time.sleep(5)
    
    browser.quit()
    
    

    2.键盘事件

    前面的 send_keys() 方法用来模拟键盘输入;keys() 类提供了键盘上几乎所有按键的方法,组合键也是可以的。

    常用的键盘操作如下:

    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)
    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
    
    #!/usr/bin/env python
    # -*- encoding: utf-8 -*-
    
    from selenium import webdriver
    from selenium.webdriver.common.keys import Keys
    import time
    
    
    base_url = 'https://www.baidu.com/'
    driver = webdriver.Chrome('../tools/chromedriver.exe')
    driver.get(base_url)
    
    
    # 先输入百度
    driver.find_element_by_id('kw').send_keys('百度')
    # 1.删除度
    driver.find_element_by_id('kw').send_keys(Keys.BACK_SPACE)
    time.sleep(3)
    
    # 2.键入空格
    driver.find_element_by_id('kw').send_keys(Keys.SPACE)
    driver.find_element_by_id('kw').send_keys('加入空格')
    time.sleep(5)
    
    # 3.ctrl+a 全选输入框里的内容
    driver.find_element_by_id('kw').send_keys(Keys.CONTROL, 'a')
    time.sleep(3)
    
    # 4.ctrl+x 剪切输入框里的内容
    driver.find_element_by_id('kw').send_keys(Keys.CONTROL, 'x')
    time.sleep(3)
    
    # 5. ctrl+v 粘贴剪切的内容
    driver.find_element_by_id('kw').send_keys(Keys.CONTROL, 'v')
    time.sleep(3)
    
    # 6. 回车
    driver.find_element_by_id('su').send_keys(Keys.ENTER)
    time.sleep(3)
    
    
    driver.quit()
    
    

    参考链接:
    https://www.cnblogs.com/csmashang/p/12706696.html

    相关文章

      网友评论

          本文标题:python3+selenium实现Web自动化3:鼠标操作和键

          本文链接:https://www.haomeiwen.com/subject/wdbkqltx.html