• Web自动化之Selenium-鼠标操作


    本文总结了Selenium常用的鼠标操作。 

    1、鼠标点击

    打开百度网站,点击首页的新闻。

    1. from selenium import webdriver
    2. from time import sleep
    3. driver = webdriver.Chrome()
    4. driver.get('https://www.baidu.com/')
    5. ele = driver.find_element_by_link_text('新闻')
    6. ele.click() # 鼠标单击
    7. sleep(2)
    8. driver.quit()

    2、内置鼠标操作包

    WebDriver封装了一套鼠标操作的包,

    ●引入包:from selenium.webdriver.common.action_chains import ActionChains

    ●定位元素,存储到某个变量:ele = driver.find_element_by_×××('××')。

    ●固定写法:ActionChains(driver).click(ele).perform()

     

    重写例子

    1. from selenium import webdriver
    2. from time import sleep
    3. from selenium.webdriver.common.action_chains import ActionChains
    4. driver = webdriver.Chrome()
    5. driver.get('https://www.baidu.com/')
    6. ele = driver.find_element_by_link_text('新闻')
    7. ActionChains(driver).click(ele).perform()
    8. sleep(2)
    9. driver.quit()

     3、鼠标双击操作

    1. from selenium import webdriver
    2. from time import sleep
    3. from selenium.webdriver.common.action_chains import ActionChains
    4. driver = webdriver.Chrome()
    5. driver.get("http://sahitest.com/demo/clicks.htm")
    6. ele = driver.find_element_by_xpath('/html/body/form/input[2]')
    7. sleep(2)
    8. # 通过double_click方法来模拟鼠标双击的操作
    9. ActionChains(driver).double_click(ele).perform()
    10. sleep(3)
    11. driver.quit()

    “http://sahitest.com/demo/”这个网址简直是练习操作控件的“神器”,笔者整理了各种Web控件用于练习定位及操作,后续我们会有大量的测试代码源于该网站。

     4、鼠标右击

    1. from selenium import webdriver
    2. from time import sleep
    3. from selenium.webdriver.common.action_chains import ActionChains
    4. driver = webdriver.Chrome()
    5. driver.get("http://sahitest.com/demo/clicks.htm")
    6. ele = driver.find_element_by_xpath('/html/body/form/input[4]')
    7. sleep(2)
    8. # 通过context_click方法模拟鼠标右击的操作
    9. ActionChains(driver).context_click(ele).perform()
    10. sleep(3)
    11. driver.quit()

    5、鼠标指针悬浮

    1. from selenium import webdriver
    2. from time import sleep
    3. from selenium.webdriver.common.action_chains import ActionChains
    4. driver = webdriver.Chrome()
    5. driver.get("http://sahitest.com/demo/mouseover.htm")
    6. ele = driver.find_element_by_xpath('/html/body/form/input[1]')
    7. sleep(2)
    8. # 通过move_to_element方法模拟鼠标指针的悬浮操作
    9. ActionChains(driver).move_to_element(ele).perform()
    10. sleep(3)
    11. driver.quit()

    6、鼠标拖动

    1. from selenium import webdriver
    2. from time import sleep
    3. from selenium.webdriver.common.action_chains import ActionChains
    4. driver = webdriver.Chrome()
    5. driver.get("http://sahitest.com/demo/dragDropMooTools.htm")
    6. source = driver.find_element_by_xpath('//*[@id="dragger"]')
    7. target = driver.find_element_by_xpath('/html/body/div[5]')
    8. sleep(2)
    9. # 通过drag_and_drop方法模拟鼠标拖动操作
    10. ActionChains(driver).drag_and_drop(source, target).perform()
    11. sleep(3)
    12. driver.quit()

    7、鼠标操作汇总

     

  • 相关阅读:
    配置全面升级!NANK南卡骨传导运动耳机Runner CC 3新品首发
    游戏开发需不需要考研?
    HTTPS/HTTP2
    word图片无法居中,原因可能是非嵌入式!
    说说未来趋势 「元宇宙」是什么?
    vue3后台管理框架之路由配置
    Redis集群模式
    告前端同学书
    序列查询新解
    R语言ggplot2可视化时间序列柱形图:通过双色渐变配色颜色主题可视化时间序列柱形图
  • 原文地址:https://blog.csdn.net/seanyang_/article/details/127459950