• 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、鼠标操作汇总

     

  • 相关阅读:
    iOS 开发中上传 IPA 文件的方法(无需 Mac 电脑)
    资源道具化
    python使用hashlib库运行MD5哈希算法
    80个在线小游戏源码
    Java 与零拷贝
    新增成功后跳转到表格列表刷新表格数据
    Power BI 自定义门户----大成
    【LeetCode】2562. 找出数组的串联值
    vscode中对 python 快速增加header 描述
    回溯-子集
  • 原文地址:https://blog.csdn.net/seanyang_/article/details/127459950