- 如果定位的标签在iframe中,需要先切换到iframe中
- 切换到iframe: driver.switch_to.frame('iframe的id属性值')
-动作链(拖动):from selenium.webdriver import ActionChains
- 实例化一个动作链对象
- 执行一系列的动作链操作
- 调用perform()方法执行链中的所有操作
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains
from time import sleep
bro = webdriver.Chrome()
bro.get('https://www.runoob.com/try/try.php?filename=jqueryui-api-droppable')
# 如果定位的标签存在于iframe标签之中,则必须通过switch_to.frame()进行切换
bro.switch_to.frame('iframeResult') # 切换至iframe中
element = bro.find_element(By.ID, 'draggable')
# 动作链
action = ActionChains(bro)
action.click_and_hold(element)
for i in range(5):
action.move_by_offset(17, 0).perform()
sleep(0.3)
# 释放动作链
action.release()# 执行最后一个动作释放鼠标
# 注意:release()方法本身并不执行释放操作,需要调用perform()方法执行动作链
# 最后退出浏览器
bro.quit()