selenium处理iframe

- 如果定位的标签在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()
posted @ 2024-02-29 22:16  会秃头的小白  阅读(58)  评论(0编辑  收藏  举报