zoukankan      html  css  js  c++  java
  • 6_4 行为链

        在上面的实例中,一些交互动作都是针对某个节点执行的。比如,对于输入框,我们就调用它的输入文字和清空文字方法;对于按钮,就调用它的点击方法。其实,还有另外一些操作,它们没有特定的执行对象,比如鼠标拖曳、键盘按键等,这些动作用另一种方式来执行,那就是动作链。

     1 """行为链"""
     2 
     3 from selenium import webdriver
     4 from selenium.webdriver.common.action_chains import ActionChains
     5 
     6 driver_path = r"D:installchromedriverchromedriver.exe"
     7 driver = webdriver.Chrome(executable_path = driver_path)
     8 driver.get('https://www.baidu.com/')
     9 
    10 intputTag = driver.find_element_by_id('kw')
    11 submitBtn = driver.find_element_by_id('su')
    12 
    13 actions = ActionChains(driver)
    14 actions.move_to_element(intputTag)
    15 actions.send_keys_to_element(intputTag, 'python')
    16 actions.move_to_element(submitBtn)
    17 actions.click(submitBtn)
    18 actions.perform()

    比如,现在实现一个节点的拖曳操作,将某个节点从一处拖曳到另外一处,可以这样实现:

    from selenium import webdriver
    from selenium.webdriver import ActionChains
    from time import sleep
    
    
    # 创建一个浏览器对象
    bro = webdriver.Chrome(executable_path="chromedriver.exe")
    # 发起url请求
    bro.get("https://www.runoob.com/try/try.php?filename=jqueryui-api-droppable")
    
    # 定位的标签是存在于iframe的子页面中,如果直接使用find做定位,是定位不到的
    # 定位iframe中标签操作
    # 第一步:定位到iframe标签位置
    bro.switch_to.frame("iframeResult")
    # 第二步:通过ID定位到需要拖动的标签
    target_ele = bro.find_element_by_id("draggable")
    
    
    # 创建一个拖动对象
    action = ActionChains(bro)
    # 点击拖动对象并长按保持
    action.click_and_hold(target_ele)
    
    # 模拟拖动5次,每次拖动17个像素点
    for i in range(5):
        # 执行拖动动作
        action.move_by_offset(17, 0).perform()
        # 每拖动17像素暂停5秒
        sleep(2)
    
    # 释放拖动对象句柄
    action.release()
    
    sleep(2)
    # 关闭浏览器
    bro.quit()
  • 相关阅读:
    PL/SQL Developer使用技巧、快捷键(转发)
    Java 获取随机日期
    jsonArray和Java List对象互转,日期处理
    ExtJs grid单选,多选
    ExtJs 下拉单联动,次级下拉框查询模式
    ExtJs 日期相加,Grid表格列可编辑
    转:Java阳历转农历
    转:Java 计算2个时间相差多少年,多少个月,多少天的几种方式
    钥匙计数之一
    LianLianKan
  • 原文地址:https://www.cnblogs.com/sruzzg/p/13170466.html
Copyright © 2011-2022 走看看