selenium处理iframe

如果定位的标签存在于iframe标签中,则必须使用switch_to.frame(id)

导入动作链(拖动):from selenium.webdriver import ActionChains

实例化一个动作链对象:action = ActionChains(bro)

click_and_hold(div):长按且点击操作

move_by_offset(x,y)

perform() 让动作链立即执行

action.release() 释放动作链对象

 

from time import sleep
from selenium import webdriver

# 导入动作链对应的类
from selenium.webdriver import ActionChains

bro = webdriver.Chrome(executable_path='chromedriver')
bro.get('https://www.runoob.com/try/try.php?filename=jqueryui-api-droppable')

# 如果定位的标签是存在于iframe标签之中的则必须通过如下操作再进行标签定位
bro.switch_to.frame('iframeResult') # 切换浏览器标签定位的作用域
div = bro.find_element_by_id('draggable')

# 动作链
action = ActionChains(bro)
# 点击长按指定的标签
action.click_and_hold(div)

for i in range(5):
    #perform()立即执行动作链操作
    #move_by_offset(x,y):x水平方向,y垂直方向
    action.move_by_offset(17,0).perform()
    sleep(3)

# 释放动作链
action.release()

bro.quit()

 

posted @ 2020-05-27 10:03  南啾  阅读(281)  评论(0编辑  收藏  举报