selenium Webdriver自动化测试之手势操作TouchAction 详解

news/2024/5/19 23:51:31 标签: 指针, selenium, java, 快速排序, webgl
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)

例: 

  1. TouchAction action = new TouchAction(driver);
  2. action.longPress(names.get( 200),1000).perform().release();
  3. action.longPress( 200 ,200,1000).perform().release();

3、点击控件

方法:

  • tap()

对一个元素或控件执行点击操作。用法参考press()。

tap(WebElement el, int x, int y)

例:

  1.  TouchAction action = new TouchAction(driver);
  2. action.tap(names.get( 200)).perform().release();
  3.  action.tap( 200 ,200).perform().release();

4、移动

方法:

  • moveTo()

指针(光标)从过去指向指定的元素或点。

movTo(WebElement el, int x, int y)

其用法参考press()方法。

例:

  1.  TouchAction action = new TouchAction(driver);
  2.  action.moveTo(names.get( 200)).perform().release();
  3.  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():

    def setup_method(self):
        option = webdriver.ChromeOptions()
        option.add_experimental_option('w3c', False)
        self.driver = webdriver.Chrome(options=option)
        self.driver.maximize_window()
        self.driver.implicitly_wait(5)

    def teardown_method(self):
        self.driver.quit()

    def test_touchaction_scrollbottom(self):
        self.driver.get("https://www.baidu.com/")
        el = self.driver.find_element_by_id('kw')
        el_search = self.driver.find_element_by_id('su')
        el.send_keys('selenium测试')
        action = TouchActions(self.driver)
        action.tap(el_search)  # 点击
        action.perform()
        action.scroll_from_element(el, 0, 10000).perform()
        time.sleep(3)

end


http://www.niftyadmin.cn/n/1345875.html

相关文章

PIO导出

1..HSSFWorkbook 声明一个工作簿,创建一个excel文件 1 //创建HSSFWork对象(excel的文档对象)2 HSSFWorkbook wbnew HSSFWorkbook();3 //创建HSSFSheet对象(excel表单)4 HSSFSheet sheet wb.createSheet("成绩…

Regex 深入正则表达式

正则表达式(Regular BLOCKED EXPRESSION是一套语法匹配规则,各种语言,如Perl, .Net和Java都有其对应的共享的正则表达式类库。在.Net中,这个类库叫做Regex。 简单的说,Regex是从字符窗中查找匹配字符串的应用类。通过R…

selenium Webdriver自动化测试之多窗口及网页frame处理

一、多窗口处理 在进行自动化测试的时候,经常会遇到点击一个连接或按钮后,会打开一个新的页面,需要我们在新的窗口进行操作,这个时候就需要使用Webdriver里的switch_to_window方法了 #!/usr/bin/python # -*- coding: UTF-8 -*- &…

Wannafly模拟赛 A.矩阵(二分答案+hash)

矩阵 时间限制:1秒 空间限制:131072K题目描述 给出一个n * m的矩阵。让你从中发现一个最大的正方形。使得这样子的正方形在矩阵中出现了至少两次。输出最大正方形的边长。输入描述: 第一行两个整数n, m代表矩阵的长和宽; 接下来n行&#xff0…

[转载]详解NETBIOS

Netbois(网络基本输入/输出系统)最初由IBM,Sytek作为API开发,使用户软件能使用局域网的资源。自从诞生,Netbois成为许多其他网络应用程序的基础。严格意义上,Netbios是接入网络服务的接口标准。Netbios原来是作为THE网络控制器为I…

selenium Webdriver自动化测试之执行JavaScript脚本

WebDriver提供了execute_script()方法来执行JavaScript代码 具体DOM操作使用方法见之前写的一篇博文:https://www.cnblogs.com/feng0815/p/8215768.html 关于Webdriver自动化测试之执行JavaScript脚本可直接参考下面代码 #!/usr/bin/python # -*- coding: UTF-8 -*-…

HTTPS的单向与双向认证

HTTPS的请求相比http请求,增加了证书认证步骤: 单向认证中,需要客户端导入服务端证书即可。 使用keytool即可: keytool -import -alias 别名 -keystore cacerts -file 证书文件 -trustcacerts keytool的使用参数大致列举如下&…

Win XP远程桌面双管理员同时登录

从[url]http://www.pconline.com.cn/pcedu/soft/st/winxp/0409/other/termsrv2005.rar[/url]下载,将解压后的termsrv.dll.2055文件更改为termsrv.dll,然后重启按F8键切换到安全模式下,将其替换C:\WINDOWS\system32下的同名文件。(对于Windows…