Selenium实战(三)——滑动解锁+窗口截图

一、简单滑块的实例

当单机滑块时,改变的只是CSS样式,HTML代码如下:

1 <div class="slide-to-unlock-progress" style="background-color: rgb(255, 233, 127); height: 36px;"></div>
2 <div class="slide-to-unlock-handle" style="background-color: rgb(255, 255, 255); height: 38px; line-height: 38px; width: 37px;"></div>

  slide-to-unlock-handle表示滑块。在滑动过程中,滑块的左边距逐渐变大;slide-to-unlock-progress表示滑过之后的背景色,背景色的区域会逐渐增加。

 1 from selenium import webdriver
 2 from time import sleep
 3
 4 from selenium.common.exceptions import UnexpectedAlertPresentException
 5 from selenium.webdriver import ActionChains
 6
 7 driver = webdriver.Chrome()
 8 driver.maximize_window()
 9
10 driver.get("https://www.helloweba.net/demo/2017/unlock/")
11
12 # 定位滑块
13 slider = driver.find_elements_by_class_name("slide-to-unlock-handle")[2]
14 action = ActionChains(driver)
15 action.click_and_hold(slider).perform()
16
17 for index in range(200):
18     try:
19         action.move_by_offset(5, 0).perform()
20     except UnexpectedAlertPresentException:
21         break
22     action.reset_actions()
23     sleep(0.1)      # 等待停顿时间
24
25 # 打印警告框提示
26 success_text = driver.switch_to.alert.text

方法解读:

  • click_and_hold():单击并按下鼠标左键;
  • move_by_offset():移动鼠标,第一个参数为x坐标距离,第二个参数为y坐标距离;
  • reset_action():重置action.

二、上下滑动选择日期

  

from selenium import webdriver
from time import sleep

driver = webdriver.Firefox()
driver.maximize_window()
driver.get("http://www.jq22.com/yanshi4976")
sleep(2)
driver.switch_to.frame("iframe")
driver.find_element_by_id("appDate").click()

# 定位要滑动的年、月、日
dwwos = driver.find_elements_by_class_name("dwwo")
year = dwwos[0]
month = dwwos[1]
day = dwwos[2]

action = webdriver.TouchActions(driver)
action.scroll_from_element(year, 0, 5).perform()
action.scroll_from_element(month, 0, 30).perform()
action.scroll_from_element(day, 0, 30).perform()

这里使用TouchActions类中的scroll_from_element()方法滑动元素。参数如下:

  • on_element:滑动的元素
  • xoffset:x坐标距离
  • yoffset:y坐标距离

有遗留的问题没解决:

三、窗口截图

  WebDriver提供了截图函数save_screenshut(),可用来截取当前窗口。WebDriver建议使用png作为图片的后缀名。脚本运行完成后,会在当前files/目录中生成baidu_img.png图片。

1 from selenium import webdriver
2 driver = webdriver.Chrome()
3 driver.get("http://www.baidu.com")
4
5 # 截取当前窗口,指定截图图片的保存位置
6 driver.save_screenshot("./files/baidu_img.png")

原文地址:https://www.cnblogs.com/pegawayatstudying/p/12165151.html

时间: 2024-10-31 09:35:40

Selenium实战(三)——滑动解锁+窗口截图的相关文章

Selenium模拟JQuery滑动解锁

滑动解锁一直做UI自动化的难点之一,我补一篇滑动解锁的例子,希望能给初做Web UI自动化测试的同学一些思路. 首先先看个例子. https://www.helloweba.com/demo/2017/unlock/ 当我手动点击滑块时,改变的只是样式: 1.slide-to-unlock-handle 表示滑块,滑块的左边距在变大(因为它在向右移动嘛!) 2.Slide-tounlock-progress 表示滑过之后的背景黄色,黄色的宽度在增加,因为滑动经过的地方都变黄了. 除些之外,没其它

窗口截图.py

from selenium import webdriverfrom time import sleepdriver = webdriver.Firefox()driver.get("http://www.baidu.com")driver.find_element_by_id("kw").send_keys("selenium")driver.find_element_by_id("su").click()sleep(2)#

Selenium 2自动化测试实战23(窗口截图)

一.窗口截图 WebDriver提供了截图函数get_screenshot_as_file()来截取当前窗口. # -*- coding: utf-8 -*- from selenium import webdriver from time import sleep from selenium.webdriver.common.keys import Keys driver=webdriver.Chrome() driver.get("http://www.baidu.com") dr

Python+selenium之窗口截图

自动化用例是由程序去执行,因此有时候打印的错误信息并不明确,如果在脚本执行错误的时候能对当前窗口截图保存,那么通过图片就可以非常直观的看出出错的原因.webdriver提供了截图函数get_screenshot_as_file()来截取当前创窗口. 1 from selenium import webdriver 2 from time import sleep 3 driver = webdriver.Firefox() 4 driver.get("http://www.baidu.com&q

selenium基础(窗口截图)

窗口截图 目的:当脚本执行出错时对当前窗口进行截图 方法:get_screenshot_as_file() #打开百度首页,搜索“selenium",完成后进行截图,并将结果保存至D:/test.png from selenium import webdriver import time driver=webdriver.Firefox() driver.maximize_window() driver.get("https://www.baidu.com") driver.

Selenium2学习-034-WebUI自动化实战实例-032-页面快照截图应用之三 -- 区域截图(专业版)

之前有写过两篇博文讲述了 WebUI 自动化测试脚本中常用的截图方法,敬请参阅如下所示链接: 浏览器显示区域截图 浏览器指定区域截图 那么当需要截取的区域不在浏览器显示窗口范围之内时,之前的方法显然无法满足,那么该如何操作呢? 刷新页面,相当于页面归位操作 判断要截取的区域范围与当前浏览器显示区域大小关系,若截取范围大于显示区域,则重置浏览器窗口大小 模拟鼠标操作滚动屏幕,使需要截取的区域显示到浏览器窗口 重新计算截取起始位置相对于当前显示区域的坐标 调用之前的截图方法截图 下面就以获取易迅网首

Swift: 打造滑动解锁文字动画

最近木事,找出来玩了玩facebook的paper.到处都是那个"slide to unlock your phone"的效果啊.忽闪忽闪的小有点炫酷的感觉.于是准备研究一下.木有想到的是居然可以用CAGradientLayer和一个小小的动画就可以实现这个效果."滑动解锁"的效果: 当然啦,首先你需要显示出这个"滑动解锁"的文本.这里咱们就用一个简单的UILabel来解决这个问题. var textExampleLabel: UILabel!

Python机器学习实战&lt;三&gt;:k-邻近算法

安装说明参考openssl源码文件夹下INSTALL.W32 step1 环境搭建 安装perl,Visual Studio 2008 下载Openssl最新版源码.我下的版本为OpenSSL-1.0.0g. step2 启动Visual Studio 2008 Command Prompt 运行bin\vcvars32 设置 环境变量 注意: 如遇反馈"此处不应该有/Microsoft",参考错误1. step3 VS命令行窗口cd至openssl源码文件夹 执行以下命令 $perl

windows程序开发窗口截图实现一

1.2编写窗口截图 本次选择窗口截图一共3步:鼠标按下.移动.弹起. 知识点:改变鼠标图标.截图函数封装.窗口画图 本节新学习AIP: LoadCursor SetCursor(m_hCursor); SetCapture(); CreateDC CreateCompatibleDC CreateCompatibleBitmap ClientToScreen WindowFromPoint CreateSolidBrush FrameRect -------------.. 视频观看地址: ht