Python+Selenium實(shí)現(xiàn)網(wǎng)站滑塊拖動(dòng)操作
實(shí)現(xiàn)效果

示例代碼
import time
from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
service = Service(r"D:\software\chromedriver.exe")
driver = webdriver.Chrome(service=service)
# 控制瀏覽器訪(fǎng)問(wèn)url地址
driver.get("https://www.taobao.com/")
# 隱式等待
driver.implicitly_wait(1)
account = 'account' # 賬號(hào)
password = 'abc123' # 密碼
# 找到“登錄”位置
driver.find_element(by=By.CSS_SELECTOR, value="div.member-ft > div > a.btn-login").click()
driver.maximize_window()
driver.implicitly_wait(1)
# 切換頁(yè)面 獲取當(dāng)前頁(yè)面handle 獲取所有頁(yè)面的handle 列表的后面
driver.switch_to.window(driver.window_handles[1])
# 找到“賬號(hào)名”輸入框
el_account = driver.find_element(by=By.CSS_SELECTOR, value='#fm-login-id')
print(el_account.text)
driver.implicitly_wait(1)
# 點(diǎn)擊賬號(hào)輸入框
el_account.click()
# 輸入賬號(hào)
el_account.send_keys(account)
driver.implicitly_wait(1)
# 找到“密碼”輸入框
el_password = driver.find_element(by=By.XPATH, value='//*[@id="fm-login-password"]')
# print(el_password.text)
# print(el_password.location)
# 點(diǎn)擊密碼輸入框
el_password.click()
# 輸入密碼
el_password.send_keys(password)
driver.implicitly_wait(2)
# 找到“登錄”按鈕,并點(diǎn)擊
el_login_btn = driver.find_element(by=By.XPATH, value='//*[@id="login-form"]/div[4]/button')
el_login_btn.click()
# print(el_login_btn.location)
driver.implicitly_wait(1)
# 切換frame
driver.switch_to.frame('baxia-dialog-content')
# 找到滑塊,獲取寬高
el1 = driver.find_element(by=By.XPATH, value='//*[@id="nc_1_n1z"]')
print(el1.size['width'])
print(el1.size['height'])
# 找到拖動(dòng)區(qū)域,獲得寬高
el2 = driver.find_element(by=By.XPATH, value='//*[@id="nc_1__scale_text"]')
print(el2.size['width'])
print(el2.size['height'])
driver.implicitly_wait(2)
# 創(chuàng)建一個(gè)事件鏈對(duì)象
chains = ActionChains(driver)
# 實(shí)現(xiàn)滑塊拖動(dòng)
chains.drag_and_drop_by_offset(el1, el2.size['width'], -el2.size['height'])
# 事件提交
chains.perform()
time.sleep(5)
# 關(guān)閉瀏覽器
driver.close()
driver.quit()
方法補(bǔ)充
在做登錄測(cè)試時(shí),有些站點(diǎn)會(huì)有“滑塊”驗(yàn)證功能,自動(dòng)化測(cè)試可用對(duì)滑塊拖拉操作的方式處理:
需求:攜程注冊(cè)“滑塊”操作

思路:
按住左邊滑塊
拖放到最右邊
用鍵盤(pán)事件中:drag_and_drop_by_offset
代碼為:
#大牛測(cè)試:輕輕松松自動(dòng)化
#QQ:2574674466
#專(zhuān)注自動(dòng)化測(cè)試技術(shù)傳播
from selenium import webdriver
import time
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains
driver = webdriver.Chrome()
driver.get("https://passport.ctrip.com/user/reg/home")
driver.find_element_by_css_selector("#agr_pop > div.pop_footer > a.reg_btn.reg_agree").click()
sour = driver.find_element_by_css_selector("#slideCode > div.cpt-drop-box > div.cpt-drop-btn")
print(sour.size['width'])
print(sour.size['height'])
ele =driver.find_element_by_css_selector("#slideCode > div.cpt-drop-box > div.cpt-bg-bar")
print(ele.size['width'])
print(ele.size['height'])
time.sleep(2)
ActionChains(driver).drag_and_drop_by_offset(sour,ele.size["width"],-ele.size["height"]).perform()
到此這篇關(guān)于Python+Selenium實(shí)現(xiàn)網(wǎng)站滑塊拖動(dòng)操作的文章就介紹到這了,更多相關(guān)Python Selenium滑塊拖動(dòng)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python讀取并繪制nc數(shù)據(jù)的保姆級(jí)教程
其實(shí)目前很多數(shù)據(jù)以nc格式存儲(chǔ),這篇文章主要給大家介紹了關(guān)于python讀取并繪制nc數(shù)據(jù)的保姆級(jí)教程,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05
Python設(shè)計(jì)實(shí)現(xiàn)的計(jì)算器功能完整實(shí)例
這篇文章主要介紹了Python設(shè)計(jì)實(shí)現(xiàn)的計(jì)算器功能,結(jié)合完整實(shí)例形式分析了Python3.5實(shí)現(xiàn)計(jì)算器功能的正則、字符串及數(shù)值運(yùn)算等相關(guān)操作技巧,需要的朋友可以參考下2017-08-08
python?matplotlib自定義colorbar顏色條及內(nèi)置色條詳解
由于自己畫(huà)圖的需要想要用一些自定義的顏色來(lái)做一個(gè)colorbar,所以下面這篇文章主要給大家介紹了關(guān)于python?matplotlib自定義colorbar顏色條及內(nèi)置色條的相關(guān)資料,需要的朋友可以參考下2022-08-08
Django REST框架創(chuàng)建一個(gè)簡(jiǎn)單的Api實(shí)例講解
在本篇文章里小編給大家整理的是關(guān)于Django REST框架創(chuàng)建一個(gè)簡(jiǎn)單的Api實(shí)例講解,有需要的朋友們可以學(xué)習(xí)下。2019-11-11
Python入門(mén)教程(三十四)Python的文件處理
這篇文章主要介紹了Python入門(mén)教程(三十四)Python的文件處理,在Python中處理文件的主要是open()函數(shù),接下來(lái)我們就來(lái)一起看看open()函數(shù)的用法吧,需要的朋友可以參考下2023-05-05
PyTorch 遷移學(xué)習(xí)實(shí)踐(幾分鐘即可訓(xùn)練好自己的模型)
這篇文章主要介紹了PyTorch 遷移學(xué)習(xí)實(shí)踐(幾分鐘即可訓(xùn)練好自己的模型),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03
python實(shí)戰(zhàn)小游戲之考驗(yàn)記憶力
本篇文章介紹了用python編寫(xiě)的曾經(jīng)風(fēng)靡的考驗(yàn)記憶力的小游戲,詳細(xì)介紹了整個(gè)思路和過(guò)程以及代碼,通讀本篇對(duì)大家的學(xué)習(xí)或工作具有一定的價(jià)值,需要的朋友可以參考下2021-09-09
Python之random.sample()和numpy.random.choice()的優(yōu)缺點(diǎn)說(shuō)明
這篇文章主要介紹了Python之random.sample()和numpy.random.choice()的優(yōu)缺點(diǎn)說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06
python global的創(chuàng)建和修改實(shí)例講解
在本篇文章里小編給大家整理了一篇關(guān)于python global的創(chuàng)建和修改實(shí)例講解內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。2021-09-09
selenium+python自動(dòng)化測(cè)試之環(huán)境搭建
這篇文章主要介紹了selenium+python自動(dòng)化測(cè)試之環(huán)境搭建,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-01-01

