selenium——鼠标操作ActionChains:点击、滑动、拖动

from selenium.webdriver import ActionChains

1、鼠标点击

click:鼠标左击

double_click:鼠标双击

context_click:鼠标右击

btn = driver.find_element_by_id('su')

# 第一步:创建一个鼠标操作的对象

action = ActionChains(driver)

# 第二步:进行点击动作(事实上不会进行操作,只是添加一个点击的动作)

action.click(btn)

# 第三步:执行动作

action.perform()

————————————————

2、鼠标移动

driver = webdriver.Chrome()

driver.get('https://www.baidu.com/')

driver.implicitly_wait(5)

# 定位设置元素

set_ele = driver.find_element_by_xpath("//div[@id='u1']//a[text()='设置']")

# 第一步:创建一个鼠标操作的对象

action = ActionChains(driver)

# 第二步:进行移动

action.move_to_element(set_ele)

# 第三步:执行动作

action.perform()

# 三行代码写成一行:支持链式调用

ActionChains(driver).move_to_element(set_ele).perform()

# 等待高级设置可点击

WebDriverWait(driver,5,0.2).until(

    EC.element_to_be_clickable((By.XPATH,"//a[text()='高级搜索']"))

).click()

--------------------------------------------------

3、鼠标滑动(选中要拖动的要素然后进行滑动)

# 选择拖动滑块的节点

sli_ele = driver.find_element_by_id('tcaptcha_drag_thumb')

# ------------鼠标滑动操作------------

action = ActionChains(driver)

# 第一步:在滑块处按住鼠标左键

action.click_and_hold(sli_ele)

# 第二步:相对鼠标当前位置进行移动

action.move_by_offset(100,0)     ---------------(100,0)指的是向正向滑动100px,上下位置不变;

# 第三步:释放鼠标

action.release()

# 执行动作

action.perform()

-----------------------------------------

4、鼠标在一个元素上拖动到另一个元素

s = WebDriverWait(driver, 30, 0.5).until(

    EC.visibility_of_element_located((By.ID, 'draggable'))

)

t = WebDriverWait(driver, 30, 0.5).until(

    EC.visibility_of_element_located((By.ID, 'droppable'))

)

# ------------鼠标滑动操作------------

action = ActionChains(driver)

# 第一步:拖动元素

action.drag_and_drop(s, t)

# 执行动作

action.perform()

----------------------------

版权声明:本文为CSDN博主「雾进」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/a12355556/article/details/111772547

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容