selenium Webdriver自动化测试之手势操作TouchAction 详解
2021/7/17 23:19:18
本文主要是介绍selenium Webdriver自动化测试之手势操作TouchAction 详解,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
TouchAction,类似于ActionChains,ActionChains只是针对PC端程序鼠标模拟的一系列操作,对H5页面操作是无效的。TouchAction可以对H5页面操作,通过TouchAction可以实现点击、滑动、拖拽、多点触控,以及模拟手势等各种操作。关于 ActionChains的介绍可移步: https://www.cnblogs.com/feng0815/p/8344120.html
手势控制
1、按压控件
方法:
- press()
开始按压一个元素或坐标点(x,y)。通过手指按压手机屏幕的某个位置。
press(WebElement el, int x, int y)
press也可以接收屏幕的坐标(x,y)。
例:TouchAction(driver).press(x=0,y=308).release().perform()
除了press()方法之外,本例中还用到了别外两个新方法。
-
release() 结束的行动取消屏幕上的指针。
-
Perform() 执行的操作发送到服务器的命令操作。
2、长按控件
方法:
- longPress()
开始按压一个元素或坐标点(x,y)。 相比press()方法,longPress()多了一个入参,既然长按,得有按的时间吧。duration以毫秒为单位。1000表示按一秒钟。其用法与press()方法相同。
longPress(WebElement el, int x, int y, Duration duration)
例:
- TouchAction action = new TouchAction(driver);
- action.longPress(names.get(200),1000).perform().release();
- action.longPress(200 ,200,1000).perform().release();
3、点击控件
方法:
- tap()
对一个元素或控件执行点击操作。用法参考press()。
tap(WebElement el, int x, int y)
例:
- TouchAction action = new TouchAction(driver);
- action.tap(names.get(200)).perform().release();
- action.tap(200 ,200).perform().release();
4、移动
方法:
- moveTo()
将指针(光标)从过去指向指定的元素或点。
movTo(WebElement el, int x, int y)
其用法参考press()方法。
例:
- TouchAction action = new TouchAction(driver);
- action.moveTo(names.get(200)).perform().release();
- action.moveTo(200 ,200).perform().release();
5、暂停
方法:
- wait()
暂停脚本的执行,单位为毫秒。
action.wait(1000);
#!/usr/bin/python # -*- coding: UTF-8 -*- """ @author:chenshifeng @file:test_TouchAction.py @time:2020/10/17 """ import time from selenium import webdriver from selenium.webdriver import TouchActions class TestTouchAction(): </span><span style="color: rgba(0, 0, 255, 1)">def</span><span style="color: rgba(0, 0, 0, 1)"> setup_method(self): option </span>=<span style="color: rgba(0, 0, 0, 1)"> webdriver.ChromeOptions() option.add_experimental_option(</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">w3c</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">, False) self.driver </span>= webdriver.Chrome(options=<span style="color: rgba(0, 0, 0, 1)">option) self.driver.maximize_window() self.driver.implicitly_wait(</span>5<span style="color: rgba(0, 0, 0, 1)">) </span><span style="color: rgba(0, 0, 255, 1)">def</span><span style="color: rgba(0, 0, 0, 1)"> teardown_method(self): self.driver.quit() </span><span style="color: rgba(0, 0, 255, 1)">def</span><span style="color: rgba(0, 0, 0, 1)"> test_touchaction_scrollbottom(self): self.driver.get(</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">https://www.baidu.com/</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">) el </span>= self.driver.find_element_by_id(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">kw</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">) el_search </span>= self.driver.find_element_by_id(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">su</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">) el.send_keys(</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">selenium测试</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">) action </span>=<span style="color: rgba(0, 0, 0, 1)"> TouchActions(self.driver) action.tap(el_search) </span><span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 点击</span> action.perform() action.scroll_from_element(el, 0, 10000).perform() time.sleep(3)
转载至https://www.cnblogs.com/feng0815/p/13831057.html
这篇关于selenium Webdriver自动化测试之手势操作TouchAction 详解的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-15在使用平台私钥进行解密时提示 "私钥解密失败" 错误信息是什么原因?-icode9专业技术文章分享
- 2024-11-15Layui框架有哪些方式引入?-icode9专业技术文章分享
- 2024-11-15Layui框架中有哪些减少对全局环境的污染方法?-icode9专业技术文章分享
- 2024-11-15laydate怎么关闭自动的日期格式校验功能?-icode9专业技术文章分享
- 2024-11-15laydate怎么取消初始日期校验?-icode9专业技术文章分享
- 2024-11-15SendGrid 的邮件发送时,怎么设置回复邮箱?-icode9专业技术文章分享
- 2024-11-15使用 SendGrid API 发送邮件后获取到唯一的请求 ID?-icode9专业技术文章分享
- 2024-11-15mailgun 发送邮件 tags标签最多有多少个?-icode9专业技术文章分享
- 2024-11-15mailgun 发送邮件 怎么批量发送给多个人?-icode9专业技术文章分享
- 2024-11-15如何搭建web开发环境并实现 web项目在浏览器中访问?-icode9专业技术文章分享