• 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秒,时间间隔越小,移动越顺滑.

  • 相关阅读:
    DDL、DML、TCL
    SQL简介
    Java基础--常用API--IO流相关API
    Java基础--多线程
    Java基础--常用API--集合类相关API
    Java基础--常用API--日期相关API
    Java基础--常用API--字符串相关API
    Java基础--正则表达式的规则
    Java基础--常用API--java.lang.Object
    26、springboot——整合JPA
  • 原文地址:https://www.cnblogs.com/android-it/p/9506811.html
Copyright © 2020-2023  润新知