前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Selenium系列(四) - 详细解读鼠标操作

Selenium系列(四) - 详细解读鼠标操作

作者头像
小菠萝测试笔记
发布2020-06-09 15:32:22
5130
发布2020-06-09 15:32:22
举报
文章被收录于专栏:自动化、性能测试

如果你还想从头学起Selenium,可以看看这个系列的文章哦!

https://www.cnblogs.com/poloyy/category/1680176.html

其次,如果你不懂前端基础知识,需要自己去补充哦,博主暂时没有总结(虽然我也会,所以我学selenium就不用复习前端了哈哈哈...)

引入HTML页面

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>小菠萝测试笔记</title>
</head>
<body>

<a>用户名:</a>
<input id="username" class="username">
<a>密码</a>
<input id="password" name="password">
<button class="login">登录</button>
<br>
<p>测试啦</p>
<p>再一次测试啦</p>
<br>
<a href="https://voice.baidu.com/act/newpneumonia/newpneumonia/?from=osari_pc_1" target="_blank" id="virus-202s0"
   class="mnav sp dot">终极抗击肺炎啊</a>
<a href="https://voice.baidu.com/act/newpneumonia/newpneumonia/?from=osari_pc_1" target="_blank" id="virus-2020"
   class="mnav sp dot">抗击肺炎</a>
<a href="https://voice.baidu.com/act/newpneumonia/newpneumonia/?from=osari_pc_1" target="_blank" id="virus-202s0"
   class="mnav sp dot">抗击肺炎</a>

<div>
    <ul>
        <li class="li">111</li>
        <li class="li">222</li>
        <li class="li">333</li>
    </ul>
    <ul>
        <li>aaa</li>
        <li>bbb</li>
        <li>ccc</li>
    </ul>
</div>
</body>
</html>

背景

用selenium做自动化,有时候会遇到需要模拟鼠标操作才能进行的情况,比如单击、双击、点击鼠标右键、拖拽等等。

而selenium给我们提供了一个类来处理这类事件—— ActionChains

有哪些鼠标操作呢?

  • 执行操作
  • 左键、右键单击、双击
  • 鼠标悬停到元素、偏移处
  • 长按
  • 拖动

点击右边目录即可跳转哦! -------------->>>>>>>>>>

执行操作

perform() 方法

主要是调用其他操作方法后,都要再次调用这个方法,表示执行某个鼠标操作,后面会有例子

左键、右键单击、双击

代码语言:javascript
复制
from selenium.webdriver import ActionChains
from selenium import webdriver

driver = webdriver.Chrome("../resources/chromedriver.exe")

# 创建实例
chains = ActionChains(driver)

# 访问网址
driver.get("file:///C:/test.html")

# 登录按钮
username = driver.find_element_by_id("username")
login_btn = driver.find_element_by_class_name("login")
password = driver.find_element_by_id("password")

# 左键点击
chains.click(username).perform()

# 右键点击
chains.context_click(username).perform()

# 双击
chains.double_click(password).perform()

鼠标悬停到元素、偏移处

代码语言:javascript
复制
# 悬停到设置按钮
chains.move_to_element(login_btn).perform()

# 悬停到指定偏移量
chains.move_to_element_with_offset(login_btn, 2, 2).perform()

知识点

move_to_element_with_offset() 是先找到元素,再根据元素位置偏移指定偏移量

长按

代码语言:javascript
复制
# 长按
chains.click_and_hold(login_btn).perform()

拖动

代码语言:javascript
复制
# 拖动1
chains.drag_and_drop(source=username, target=password)

# 拖动2
chains.drag_and_drop_by_offset(source=username, xoffset=20, yoffset=20)

知识点

  • 将源元素拖动到目标元素处

drag_and_drop

  • 将源元素拖动指定偏移量

drag_and_drop_by_offset

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-03-28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 引入HTML页面
  • 背景
  • 有哪些鼠标操作呢?
    • 执行操作
      • 左键、右键单击、双击
        • 鼠标悬停到元素、偏移处
          • 知识点
        • 长按
          • 拖动
            • 知识点
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档