selenium中文文档_selenium滚动日历定位(TouchActions)

前言

  前几天见测试群里有人问,如果定位web页面上的滚动日历,安静简单的定位,分享给大家

滚动日历

我们先看看滚动日历是什么样子的,下图就是安静在网上随便找的滚动日历内容。

4d3afcbf0ccbf0ff1ec4dde90fa68049.png

手工操作

在写代码前,首先要弄清楚,手工测试的时候如何进行操作滚动日历的,手工测试时,我们通过鼠标上的滚轮进行操作的,通过向上或者向下进行滚动选择日期。那么问题来了,我们怎么控制鼠标的滚轮呢?前面介绍了鼠标的操作,其实还有鼠标的滚动没有给大家介绍,借此机会,进行补充

TouchActions

TouchActions是selenium中的一个库,主要用来进行操作H5页面上的一些鼠标操作,比如鼠标滑动,点击,拖动等

中文文档:https://python-selenium-zh.readthedocs.io/zh_CN/latest/7.2%20%E8%A1%8C%E4%B8%BA%E9%93%BE/

导入方法:from selenium.webdriver import TouchActions

主要方法有:
  • double_tap(on_element)   双击

  • flick_element(on_element, xoffset, yoffset, speed)   从元素开始以指定的速度移动

  • long_press(on_element)   长按不释放

  • move(xcoord, ycoord)   移动到指定的位置

  • perform()   执行链中的所有动作

  • release(xcoord, ycoord)   在某个位置松开操作

  • scroll(xoffset, yoffset)     #滚动到某个位置

  • scroll_from_element(on_element, xoffset, yoffset)   从某元素开始滚动到某个位置

  • tap(on_element)      单击

  • tap_and_hold(xcoord, ycoord)     某点按住

本章处理日历操作主要运用了元素滚动内容,处理此操作,安静先整理下思路

1、定位日历上的元素

2、通过scroll_from_element(on_element, xoffset, yoffset) 方法进行滚动

如果没有用过方法的小伙伴们,可以查看下源码进行分析

def scroll_from_element(self, on_element, xoffset, yoffset):
        """
        从on_element开始触摸和滚动,通过xoffset和yoffset移动。
        :Args:
         - on_element: The element where scroll starts.
         - xoffset: X offset to scroll to.
         - yoffset: Y offset to scroll to.
        """
        self._actions.append(lambda: self._driver.execute(
            Command.TOUCH_SCROLL, {
                'element': on_element.id,
                'xoffset': int(xoffset),
                'yoffset': int(yoffset)}))
        return self

其中xoffset,和yoffset表示X ,Y轴

注意:向上移动值负,向下移动值为正

方法也看了,思路也清楚了,动手写一写代码

from selenium import webdriver
import time
from selenium.webdriver import TouchActions
driver = webdriver.Chrome()
driver.get('https://www.jq22.com/yanshi3714')
time.sleep(2)
driver.switch_to.frame("iframe")
driver.find_element_by_xpath('//*[@id="text"]').click()
list = driver.find_elements_by_xpath('//*[@class="dwwo"]')
year = list[0]
month = list[1]
day = list[2]
a = TouchActions(driver)
# 滑动月
a.scroll_from_element(month,0,-8).perform()
# 滑动日
a.scroll_from_element(day,0,8).perform()
# 滑动年
a.scroll_from_element(month,0,8).perform()
9208d06a7cac88da820e69b8f774eb43.gif

通过上面的动图发现,已经成功的进行了滚动,具体的实际范围的话,可能需要自己进行多次每次滚动多少进行选择了。

安静只是简单的介绍了TouchActions的一种用法,其他的用法,以后也会慢慢进行补充。点个关注,不容错过~~

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值