zoukankan      html  css  js  c++  java
  • selenium (五) ActionChains

    ActionChains类其实就是对鼠标操作的扩展,比如右键、双击、按下拖动等操作


    还是先看看ActionChains自带的例子:
    menu = driver.find_element_by_css_selector(".nav")
    hidden_submenu = driver.find_element_by_css_selector(".nav #submenu1")
    ActionChains(driver).move_to_element(menu).click(hidden_submenu).perform()
    或者
    menu = driver.find_element_by_css_selector(".nav")
    hidden_submenu = driver.find_element_by_css_selector(".nav #submenu1")

    actions = ActionChains(driver)
    actions.move_to_element(menu)
    actions.click(hidden_submenu)
    actions.perform()
    这两种方式的效果是一样的。


    下面是ActionChains的方法
    perform():执行所有存储的操作。
    reset_actions():清除已存储在本地和远程端的操作

    click(on_element=None):
    作用:单击元素。
    参数:
    on_element:要单击的元素。
    如果为None,则单击当前鼠标位置。

    click_and_hold(on_element=None):
    作用:按住元素上的鼠标左键。
    参数:
    on_element:鼠标按下的元素。
    如果为None,则单击当前鼠标位置。


    context_click(on_element=None):
    作用:在元素上执行上下文单击(右键单击)。
    参数:
    on_element:上下文单击的元素。
    如果为None,则单击当前鼠标位置。


    double_click(on_element=None):
    作用:双击元素。
    参数:
    on_element:双击的元素。
    如果为None,则单击当前鼠标位置。

    drag_and_drop(source, target):
    作用:按住元素上的鼠标左键,然后移动到目标元素并释放鼠标按钮。
    参数:
    source:鼠标按下的元素。
    target:要鼠标移动的元素。


    drag_and_drop_by_offset(source, xoffset, yoffset):
    作用:按住元素上的鼠标左键,然后移动到目标偏移并释放鼠标按钮。
    参数:
    source:鼠标按下的元素。
    xoffset:移动到的X偏移量。
    yoffset:Y偏移移动到。


    key_down(value, element=None):
    作用:仅发送按键,而不释放它。只能与修改键(Control,Alt和Shift)一起使用。
    例如,按ctrl + c
    ActionChains(driver).key_down(Keys.CONTROL).send_keys('c').key_up(Keys.CONTROL).perform()


    key_up(value, element=None):
    作用:释放修改键
    例如,按ctrl + c
    ActionChains(driver).key_down(Keys.CONTROL).send_keys('c').key_up(Keys.CONTROL).perform()


    move_by_offset(xoffset, yoffset):
    作用:将鼠标移动到当前鼠标位置的偏移量。
    参数:
    xoffset:要移动到的X偏移量,作为正整数或负整数。
    yoffset:要移动到的Y偏移量,作为正整数或负整数。


    move_to_element(to_element):
    作用:将鼠标移动到元素的中间。
    参数:to_element:要移动到的WebElement。


    move_to_element_with_offset(to_element, xoffset, yoffset):
    作用:将鼠标移动指定元素的偏移量。偏移量相对于元素的左上角。
    参数:
    to_element:要移动到的WebElement。
    xoffset:移动到的X偏移量。
    yoffset:Y偏移移动到。


    pause(seconds):
    作用:在几秒钟内暂停指定持续时间内的所有输入


    release(on_element=None):
    作用:释放元素上的鼠标按钮。
    参数:
    on_element:鼠标移动的元素。
    如果为None,则释放当前鼠标位置。


    send_keys(*keys_to_send):
    作用:将键发送到当前聚焦元素。
    参数:
    keys_to_send:修饰符键常量可以在中找到'键'类。


    send_keys_to_element(element, *keys_to_send):
    作用:将键发送到元素。
    参数:
    element:发送密钥的元素。
    keys_to_send:要发送的密钥。 修饰符键常量可以在中找到'键'类

    实例:

    #-*-encoding:utf-8-*-
    
    from selenium import webdriver
    from selenium.webdriver.common.action_chains import ActionChains
    
    
    driver=webdriver.Chrome()
    driver.get("https://www.baidu.com")
    
    
    def click_picture_link():
    	#点击百度页面-【更多产品】->【图片】链接
    	try:
    		element=driver.find_element_by_css_selector("#u1 > a.bri")
    		ActionChains(driver).move_to_element(element).perform()    #点击【更多产品】
    		element_all=driver.find_element_by_xpath('//*[@id="head"]/div/div[4]/div/div[2]/div[1]/div/a[3]')
    		ActionChains(driver).click(element_all).perform()    #点击【图片】
    	except Exception as e:
    		raise e
    
    
    
    
    if __name__=="__main__":
    	click_picture_link()
    

      

  • 相关阅读:
    HDU 3511 圆的扫描线
    POJ 2540 半平面交
    POJ 2451 半平面交nlogn
    POJ 3525 半平面交
    HDU 3629 极角排序
    POJ 1274 半平面交
    POJ 1696 凸包变形
    POJ 3384 半平面交
    Flex SDK代码规范之命名
    Flash & Flex组件优化的杀手锏callLater
  • 原文地址:https://www.cnblogs.com/JcHome/p/10805836.html
Copyright © 2011-2022 走看看