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秒,时间间隔越小,移动越顺滑.
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号