Python+Selenium+Unittest 之selenium13--WebDriver操作方法3-鼠标操作2

这篇具有很好参考价值的文章主要介绍了Python+Selenium+Unittest 之selenium13--WebDriver操作方法3-鼠标操作2。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        这篇说下ActionChains里常用的几种鼠标操作的方法。

ActionChains常用的鼠标操作方法
click() 鼠标左键单击
double_click() 鼠标左键双击
context_click() 鼠标右键单击
move_to_element() 鼠标移动到某个元素上(鼠标悬浮操作)
click_and_hold() 点击鼠标左键,不松开
drag_and_drop() 拖拽到某个元素然后松开
drag_and_drop_by_offset() 拖拽到某个坐标然后松开
move_by_offset()

从当前位置移动到某个坐标

move_to_element_with_offset()

移动到距某个元素多远

pause() 鼠标停止操作
release() 在某个元素上释放鼠标按钮

        以上是常用的鼠标操作,这里简单举例下平时工作中用到的最多的几种方法。

目录

1、click(元素)

2、double_click(元素)

3、context_click()

4、click_and_hold()

5、release()

 6、move_to_element()

7、move_by_offset()

8、move_to_element_with_offset()

9、drag_and_drop()

10、drag_and_drop_by_offset()


1、click(元素)

      click()就是鼠标点击左键的操作,找到需要鼠标左键点击的元素后,填入到括号中即可。

from selenium import webdriver              #导入selenium模块的webdriver
from selenium.webdriver import ActionChains #导入ActionChains类
driver = webdriver.Chrome()           #webdriver.Chrome()是启动谷歌浏览器然后定义成变量driver
driver.get("https://www.baidu.com")   #打开百度浏览器  
baidu_cl=driver.find_element_by_link_text("新闻")    #定位元素新闻按钮并赋值给baidu_cl
ActionChains(driver).click(baidu_cl).perform()      #发出点击新闻按钮的指令并执行

2、double_click(元素)

        double_click()是鼠标左键双击的操作,具体用法和鼠标点击一样,找到需要双击的元素,填写到括号中即可。

d_click=driver.find_element_by_id("元素id")    #定位到某个元素然后定义为d_click
ActionChains(driver).double_click(d_click).perform()      #发出双击某个元素的指令并执行

3、context_click()

      context_click()模拟的是鼠标右键单击的操作,具体用法同鼠标单击的操作,找到需要鼠标右键的元素,填写到括号中即可。

r_click=driver.find_element_by_id("元素id")    #定位到某个元素然后定义为r_click
ActionChains(driver).context_click(r_click).perform()      #发出右击某个元素的指令并执行

下面的4、5可以结合着6、7、8一起使用,就可以模拟鼠标拖拽的操作。

4、click_and_hold()

        click_and_hold()模拟的是点击元素并且不松开鼠标左键的操作就是类似人为的按住鼠标左键不松的行为,具体操作方法为click_and_hold(元素)。

hold_click=driver.find_element_by_id("元素id")    #定位到某个元素然后定义为hold_click
ActionChains(driver).click_and_hold(hold_click).perform()      #发出按住某个元素的指令并执行

   

5、release()

        release()模拟的是松开鼠标的按键的操作,一般结合着上面的click_and_hold()操作使用。

hold_click=driver.find_element_by_id("元素id")    #定位到某个元素然后定义为hold_click
ActionChains(driver).click_and_hold(hold_click).release().perform()      #发出按住某个元素的指令,执行完后,执行松开按键的操作

 6、move_to_element()

        move_to_element()是鼠标移动到某个元素的操作,可以用来做鼠标悬浮使用,比如在百度首页的设置,我们得先把鼠标放到设置按钮上,才可以进行下面的点击操作,move_to_element()就可以完成这个指令,具体使用方式时,找到需要悬浮的元素,然后填入到括号里即可。

from selenium import webdriver     #导入selenium模块的webdriver
import time       #导入time模块
from selenium.webdriver import ActionChains #导入ActionChains类
driver = webdriver.Chrome()           #webdriver.Chrome()是启动谷歌浏览器然后定义成变量driver
driver.get("https://www.baidu.com")   #打开百度浏览器
driver.maximize_window()      #全屏显示
setting = driver.find_element_by_id("s-usersetting-top")    #鼠标悬浮在设置按钮上
ActionChains(driver).move_to_element(setting).perform()   #执行上述操作
time.sleep(3)    #等待3秒
setting2 = driver.find_element_by_xpath('//*[@id="s-user-setting-menu"]/div/a[4]')   #点击隐私设置
ActionChains(driver).click(setting2).perform()     #执行操作

Python+Selenium+Unittest 之selenium13--WebDriver操作方法3-鼠标操作2,web自动化,python,selenium

7、move_by_offset()

        move_by_offset()表示的操作为鼠标移动到某个位置,具体使用是需要再move_by_offset()括号里填上方位,原点是当前鼠标停留的位置,然后分为x轴和y轴,填入的方式为move_by_offset(x,y),以当前鼠标为原点,向左移动x就填正数,向右则为负数,向上移动y填正数,向下移动y填负数,运行完羡慕代码后会看到鼠标停留在了关闭预测的位置,并进行了点击。

from selenium import webdriver     #导入selenium模块的webdriver
import time       #导入time模块
from selenium.webdriver import ActionChains #导入ActionChains类
driver = webdriver.Chrome()           #webdriver.Chrome()是启动谷歌浏览器然后定义成变量driver
driver.get("https://www.baidu.com")   #打开百度浏览器
driver.maximize_window()      #全屏显示
setting = driver.find_element_by_id("s-usersetting-top")    #鼠标悬浮在设置按钮上
ActionChains(driver).move_to_element(setting).perform()   #执行上述操作
time.sleep(3)    #等待3秒
ActionChains(driver).move_by_offset(0,100).click().perform()     #执行向下移动100个px距离的操作,并进行点击

Python+Selenium+Unittest 之selenium13--WebDriver操作方法3-鼠标操作2,web自动化,python,selenium

8、move_to_element_with_offset()

        move_to_element_with_offset()操作为移动到距离某个元素多少的坐标,在括号里填写 move_to_element_with_offset(元素,x,y),先找到某个元素,然后以该元素为原点进行移动。

from selenium import webdriver     #导入selenium模块的webdriver
import time       #导入time模块
from selenium.webdriver import ActionChains #导入ActionChains类
driver = webdriver.Chrome()           #webdriver.Chrome()是启动谷歌浏览器然后定义成变量driver
driver.get("https://www.baidu.com")   #打开百度浏览器
driver.maximize_window()      #全屏显示
setting = driver.find_element_by_id("s-usersetting-top")    #鼠标悬浮在设置按钮上
ActionChains(driver).move_to_element(setting).perform()   #执行上述操作(不执行这个操作看不出来效果)
time.sleep(3)    #等待3秒
ActionChains(driver).move_to_element_with_offset(setting,0,100).perform()  #移动到设置按钮上,然后向下移动100px

9、drag_and_drop()

         drag_and_drop()的操作是找到第一个元素,然后按住鼠标拖拽到第二个元素的位置。需要再括号里填入两个元素,起始元素和需要移动到的元素drag_and_drop(起始元素,终止元素)。

start1 = driver.find_element_by_id("起始元素")    #定位到某个元素然后定义为start1
stop1 = driver.find_element_by_id("终止元素")    #定位到某个元素然后定义为stop1
ActionChains(driver). drag_and_drop(start1,stop1).perform()   #发出命令定位到start1元素然后按住鼠标,之后移动到stop1后松开鼠标,并执行

10、drag_and_drop_by_offset()

        drag_and_drop_by_offset()和9有点类似,操作是定位到某个元素后,以该元素为原点,然后拖拽到某个坐标,具体写法为drag_and_drop_by_offset(元素,x,y)。

start2 = driver.find_element_by_id("起始元素")    #定位到某个元素然后定义为start2
ActionChains(driver). drag_and_drop_by_offset(start2,0,100).perform()   #发出命令定位到start2元素然后按住鼠标,之后拖动到以该元素为原点的向右移动100px的位置,并执行

       如果大家在使用过程中遇到了问题,可以在文章下留言,或者关注公众号:刘阿童木的进化记录,进行留言

                   下图为公众号二维码,内容会同步发出,大家可以关注一起学习!

                                   Python+Selenium+Unittest 之selenium13--WebDriver操作方法3-鼠标操作2,web自动化,python,selenium文章来源地址https://www.toymoban.com/news/detail-813354.html

到了这里,关于Python+Selenium+Unittest 之selenium13--WebDriver操作方法3-鼠标操作2的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java Selenium WebDriver 常用方法

    一、创建浏览器对象 二、设置窗口位置、大小 三、访问网页操作 四、获取网页信息 五、切换窗口 driver.switchTo().window(\\\"要切换的窗口句柄\\\"); 六、截图保存 七、关闭窗口 八、元素定位 九、元素操作 持续更新中...  

    2024年02月03日
    浏览(40)
  • Python + Selenium WebDriver

    Python + Selenium WebDriver 一、搭建环境步骤 1、安装 python3.x (windows xp 不支持 python3.5+) 2、设置环境变量 path(安装时候也可以解决 勾上 add python.ext to path) 3、安装Selenium 用pip命令安装 pip install -U selenium 4、路径,pip可能定位不到,pip也可能定位到别的文件夹(perl) 方案:cd

    2024年02月12日
    浏览(44)
  • selenium.webdriver Python爬虫教程

    selenium安装和使用 pip install selenium 下载对应的浏览器驱动 实例化浏览器 元素定位 旧版本 selenium 函数 新版本 selenium 函数 返回复数元素的方法,分别在调用的方法加上一个s: findElements 用法示例 如果我们网页源码中有下面一段代码 元素属性 class 定位 css 选择器定位 ID 属性值

    2024年02月13日
    浏览(46)
  • 【Selenium2+python】自动化unittest生成测试报告

    前言 批量执行完用例后,生成的测试报告是文本形式的,不够直观,为了更好的展示测试报告,最好是生成HTML格式的。 unittest里面是不能生成html格式报告的,需要导入一个第三方的模块:HTMLTestRunner 一、导入HTMLTestRunner 1.这个模块下载不能通过pip安装了,只能下载后手动导

    2024年02月09日
    浏览(40)
  • Selenium的WebDriver操作页面的超时或者元素重叠引起的ElementClickInterceptedException

    处理由页面加载引起的超时是在使用 Selenium 进行自动化测试中常见的任务。页面加载可能因网络速度慢、页面复杂性或异步操作而导致超时。以下是一些处理页面加载超时的方法: 1.设置隐式等待时间: 使用 implicitly_wait 方法可以设置隐式等待时间,让 Selenium 等待一定时间

    2024年02月07日
    浏览(38)
  • python使用selenium webDriver时 报错

    可能原因和解决: 1. python 解释器 ---- 设置 2. 浏览器 版本 与 浏览器驱动 版本不一致 ---- 安装同一版本的 (下载chromedriver  |  谷歌驱动更高版本的测试版)   参考:Python使用Selenium WebDriver的入门介绍及安装教程-CSDN博客 Selenium安装WebDriver最新Chrome驱动(含116/117/118/119)_chromedri

    2024年02月04日
    浏览(39)
  • 基于Python Selenium - Unittest框架的PO设计模式详解

    接下来我们步入正文,这篇文章从以下几个内容讲述: 1、什么是PO设计模式(Page Object Model) 2、为什么要使用PO设计模式 3、使用PO设计模式要点 4、PO设计模式实例 1、什么是PO设计模式 (Page Object Model) 一种在测试自动化中变得流行的设计模式,使得自动化测试脚本的减少代码

    2023年04月17日
    浏览(38)
  • webUI自动化之基本框架搭建(python + selenium + unittest)

    该文档描述一次基于python的webUI自动化框架搭建过程及简单的使用。 框架构成: python + selenium + unittest IDEA工具:pycharm(社区版即可) Python3.9 Webdriver.exe文件下载好,将该文件放在本地python的lib文件夹下,并将其配置到环境变量(实际上放到python的任意文件夹下都可以,但必

    2024年02月02日
    浏览(43)
  • selenium 防止window.navigator.webdriver对象检测的方法

    当我们使用selenium 去访问或爬取某些网站的时候会遇到网站对selenium检测的一些情况。 正常用浏览器访问时:window.navigator属性是undefind 而使用selenium去访问 则会给window.navigator 设置webdriver属性 处理方法: 1.可以使用CDP(chrome开发者工具协议)解决这个问题 利用它可以实现每个页

    2024年02月22日
    浏览(43)
  • 2023爬虫学习笔记 -- selenium反爬虫操作(window.navigator.webdriver属性值)

    一、无可视化浏览器操作 1、导入需要的函数,固定写法,并设置相关浏览器参数 2、请求的时候加上参数设置 3、通过截图证明确实被打开了 二、有些网站通过判断window.navigator.webdriver属性值来判断是否有爬虫行为 1、正常访问浏览器,该属性值为false 2、通过webdriver访问浏览

    2024年02月08日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包