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()
  • 相关阅读:
    [贪心]P1049 装箱问题
    js中字符串转换为日期和比较大小
    weblogic配置数据源出错
    myeclipse安装svn插件的多种方式
    使用令牌实现防重复提交
    struts1.3异常处理机制
    spring log4j.properties
    spring jdbc.property的配置与使用
    js循环array,json,map
    java web的一些特殊用法(一)
  • 原文地址:https://www.cnblogs.com/sruzzg/p/13170466.html
Copyright © 2011-2022 走看看