15.Selenium+Python滑动解锁小案例

1.代码实现

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

driver= webdriver.Ie()
driver.get('https://www.helloweba.net/demo/2017/unlock/')
driver.implicitly_wait(5)

dragger = driver.find_elements_by_class_name('slide-to-unlock-handle')[0]  #错误为:find_element_by_class_name

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)    #等待停顿时间



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

sleep(5)

driver.quit()

2.易错点:find_elements_by_class_name才是正确,当输入为find_element_by_class_name时,运行则报错:TypeError: 'WebElement' object does not support indexing

3.代码解释

(1)driver.find_elements_by_class_name("slide-to-unlock-handle")[0]==先通过class属性找到所有的里面的第一个

(2)click_and_hold()     ==对滑块按下鼠标左键

(3)move_by_offset()  ==通过for循环动滑块的位置,move_by_offset()方法第一个参数是X轴,第二个参数是Y轴,单位为像素。因为是平行移动,所以Y设置为0。 X每次移动两2个像素。每次循环休眠0.1秒,时间间隔越小,移动越顺滑.

原文地址:https://www.cnblogs.com/android-it/p/9506811.html