微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

动作链对象Day03-2

#!/usr/bin/env python
#coding: utf8
#python2
#Actions chains
#动作链对象,需要把driver驱动传给他
#动作链对象可以操作一系列设定好的行为
#滑块移动
from selenium import webdriver
from selenium.webdriver import ActionChains  # 破解滑动验证码的时候用的 可以拖动图片
from selenium.webdriver.common.by import By  # 按照什么方式查找,By.ID,By.CSS_SELECTOR
from selenium.webdriver.common.keys import Keys  # 键盘按键操作
from selenium.webdriver.support import expected_conditions as EC  # 和下面webdriverwait一起用的
from selenium.webdriver.support.wait import webdriverwait  # 等待页面加载某些元素
import time

driver = webdriver.Chrome(r'C:\Users\Administrator\Desktop\chromedriver.exe')
try:
    driver.implicitly_wait(10)
    driver.get('https://www.runoob.com/try/try.PHP?filename=jqueryui-api-droppable')
    time.sleep(5)

    #遗弃方法
    #driver.switch_to_frame()
    #新方法
    driver.switch_to.frame('iframeResult')
    time.sleep(1)

    #起始方法id:draggble
    source = driver.find_element_by_id('draggable')

    #目标方块id:droppable
    target = driver.find_element_by_id('droppable')

    print(source.size)#大小
    print(source.tag_name)#标签名
    print(source.text)#文本
    print(source.location)#坐标X与Y轴

    #找到滑动距离
    distance = target.location['x'] - source.location['x']

    #按住起始滑块
    ActionChains(driver).click_and_hold(source).perform()

    #方法二:一点一点移动
    s=0
    while s < distance:
        #获取动作链对象
        #每一次位移s距离
        ActionChains(driver).move_by_offset(xoffset=2,yoffset=0).perform()
        s+=2

        time.sleep(0.1)

    #释放起始滑块
    ActionChains(driver).release().perform()

    time.sleep(10)
finally:
    driver.close()

 

原文地址:https://www.cnblogs.com/zxdhahaha/p/11128254.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐