【playwright】新一代自动化测试神器playwright+python系列课程61_番外篇_解决腾讯股吧时间轴选择问题

解决腾讯股吧时间轴选择问题
有的同学看了我发的playwright教程后,在学习过程中有问题会跟我沟通交流,我也是非常高兴与同学一块学习的。前几天有同学问了一个关于时间选择的问题,今天终于有时间处理一下了。具体问题看下图:

在这里插入图片描述

打开同学问题中的网页,所说的时间轴如下图:

在这里插入图片描述

按照同学所说,他应该是希望点击时间轴上的时间,以展示不同时间对应的股票数据。但是观察这个时间轴的html,发现是无法直接去定位某个时间点的,这个应该就是这位同学没有自己实现而问我的原因。
没有办法直接定位时间点,那怎么处理呢?通过使用这个时间轴我们会发现它除了可以鼠标直接在时间轴上点击不同时间点来获取不同时间对应数据外,也可以通过点击时间轴左右两侧的箭头来移动时间轴上的滑块,也可以获取数据。而且会发现滑块每移动一次,滑块上的时间范围也会跟着改变,这样我们就可以通过点击时间轴左右两侧的按钮移动滑块,同时判断滑块上的时间段范围是否包含我们的目标时间就可以了,如果满足要求不再点击按钮。
要判断滑块上的时间段范围是否是我们所需的时间,我们就需要定位时间段所在元素并获取时间范围了。
在这里插入图片描述

整体的思路就是,如果目标时间小于滑块对应时间范围的开始时间就点击向左移动的按钮,如果目标时间大于滑块对应时间范围的结束时间就点击向右移动的按钮,直到滑块移动到我们的目标时间点所在时间范围。
实践代码:

'''
# author: 测试-老姜   交流微信/QQ:349940839
# 欢迎添加微信或QQ,加入学习群共同学习交流。
# QQ交流群号:877498247
# 西安的朋友欢迎当面交流。
'''

from playwright.sync_api import Playwright, sync_playwright, expect
import re
import pytest

target_time = '10:46' # 目标时间

playwright = sync_playwright().start()
browser = playwright.chromium.launch(headless=False,slow_mo=1000)
context = browser.new_context()
page = context.new_page()
page.goto("https://gu.qq.com/sz000001/gp/detail")
frame = page.frame_locator('#Main')
arrow_right = frame.locator('.arrow-right')
arrow_left = frame.locator('.arrow-left')
#循环对比时间,直到滑块移动到目标时间点
while True:
    t = frame.locator('.bar.current').inner_text() # 获取滑块对应的时间范围
    print(t)
    t_li = re.findall('\d+:\d+',t) # 正则提取滑块对应的时间范围
    if target_time < t_li[0]:  #对比时间,选择按钮点击
        arrow_left.click()
    elif target_time > t_li[1]:
        arrow_right.click()
    else:
        break

page.wait_for_timeout(10000)
# ---------------------

context.close()
browser.close()
playwright.stop()
  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值