欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python中Selenium模擬JQuery滑動解鎖實例

 更新時間:2017年07月26日 09:30:48   作者:蟲師  
這篇文章主要介紹了Python中Selenium模擬JQuery滑動解鎖實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文介紹了Python中Selenium模擬JQuery滑動解鎖實例,分享給大家,也給自己留個筆記

滑動解鎖一直做UI自動化的難點之一,我補一篇滑動解鎖的例子,希望能給初做Web UI自動化測試的同學(xué)一些思路。

首先先看個例子。

當我手動點擊滑塊時,改變的只是樣式:

1、slide-to-unlock-handle 表示滑塊,滑塊的左邊距在變大(因為它在向右移動嘛?。?/p>

2、Slide-tounlock-progress 表示滑過之后的背景黃色,黃色的寬度在增加,因為滑動經(jīng)過的地方都變黃了。

除些之外,沒其它任何變化了,所以我們利用鼠標的拖動貌似不行!因為鼠標的拖動是將一個元素移動到另一個元素上。這樣:

# 定位元素的原位置
element = driver.find_element_by_id("xx")
# 定位元素要移動到的目標位置
target = driver.find_element_by_id("xx")

ActionChains(driver).drag_and_drop(element, target).perform()

但在我手動演示的過程中,元素的位置并沒有發(fā)生變化。

接下來看我是怎么實現(xiàn)的。

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.common.exceptions import UnexpectedAlertPresentException
from time import sleep

driver = webdriver.Chrome()
driver.get("https://www.helloweba.com/demo/2017/unlock/")


dragger = driver.find_elements_by_class_name("slide-to-unlock-handle")[0]

action = ActionChains(driver)

action.click_and_hold(dragger).perform() #鼠標左鍵按下不放

for index in range(200):
  try:
    action.move_by_offset(2, 0).perform() #平行移動鼠標
  except UnexpectedAlertPresentException:
    break
  action.reset_actions()
  sleep(0.1) #等待停頓時間


# 打印警告框提示
success_text = driver.switch_to.alert.text
print(success_text)

sleep(5)

driver.quit()

driver.find_elements_by_class_name("slide-to-unlock-handle")[0]

首先,我要操作的頁面上有好幾個滑塊,我先通過通過class屬性找到所有的里面的第一個。

click_and_hold()

通過click_and_hold()方法對滑塊按下鼠標左鍵。

move_by_offset()

接下來就是通過for循環(huán)動滑塊的位置,move_by_offset()方法第一個參數(shù)是X軸,第二個參數(shù)是Y軸,單位為像素。因為是平行移動,所以Y設(shè)置為0。 X每次移動兩2個像素。

當解鎖成功后會拋UnexpectedAlertPresentException異常,捕捉后跳出循環(huán)。

每次循環(huán)休眠0.1秒,時間間隔越小,移動越順滑喲!

核心的幾步介紹完了,接下來就是獲取警告框上面的提示信息并打印,然后關(guān)閉瀏覽器。

打印結(jié)果為:

successfully unlock!

 

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。 

相關(guān)文章

  • Python面向?qū)ο蠖鄳B(tài)實現(xiàn)原理及代碼實例

    Python面向?qū)ο蠖鄳B(tài)實現(xiàn)原理及代碼實例

    這篇文章主要介紹了Python面向?qū)ο蠖鄳B(tài)實現(xiàn)原理及代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-09-09
  • Django auth 應(yīng)用模塊詳解

    Django auth 應(yīng)用模塊詳解

    這篇文章主要介紹了Django auth 應(yīng)用模塊,auth 模塊幫助開發(fā)人員提高了工作效率,因為每個 Web 站點的權(quán)限管理模塊或者用戶管理模塊基本都是相同的邏輯,Django 的 auth 模塊使開發(fā)者們不必在為一些重復(fù)性的邏輯進行構(gòu)建,需要的朋友可以參考下
    2022-11-11
  • 完美解決Python matplotlib繪圖時漢字顯示不正常的問題

    完美解決Python matplotlib繪圖時漢字顯示不正常的問題

    今天小編就為大家分享一篇完美解決Python matplotlib繪圖時漢字顯示不正常的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • python部署chineseocr_lite的實現(xiàn)示例

    python部署chineseocr_lite的實現(xiàn)示例

    本文主要介紹了python部署chineseocr_lite的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • 快速部署 Scrapy項目scrapyd的詳細流程

    快速部署 Scrapy項目scrapyd的詳細流程

    這篇文章主要介紹了快速部署 Scrapy項目scrapyd的詳細流程,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • pygame實現(xiàn)鍵盤的連續(xù)監(jiān)控

    pygame實現(xiàn)鍵盤的連續(xù)監(jiān)控

    這篇文章主要為大家詳細介紹了pygame實現(xiàn)鍵盤的連續(xù)監(jiān)控,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • paramiko模塊安裝和使用(遠程登錄服務(wù)器)

    paramiko模塊安裝和使用(遠程登錄服務(wù)器)

    paramiko是用python語言寫的一個模塊,遵循SSH2協(xié)議,支持以加密和認證的方式,進行遠程服務(wù)器的連接,下面學(xué)習(xí)一下它的使用方法
    2014-01-01
  • 最新評論